Route::get('loginAdmin', function () {
return view('loginAdmin');
});
loginadmin.blade.php
@extends('layouts.app')@section('content')<div class="container"><div class="row justify-content-center"><div class="col-md-8"><div class="card"><div class="card-header">{{ __('Login') }}</div><div class="card-body"><form method="POST" action="{{ route('loginAdminname') }}"> اسم گزاشتیم برا روت مربوط به روت بالا@csrf<div class="form-group row"><label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label><div class="col-md-6"><input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email" autofocus>@error('email')<span class="invalid-feedback" role="alert"><strong>{{ $message }}</strong></span>@enderror</div></div><div class="form-group row"><label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label><div class="col-md-6"><input id="password" type="password" class="form-control @error('password') is-invalid @enderror" name="password" required autocomplete="current-password">@error('password')<span class="invalid-feedback" role="alert"><strong>{{ $message }}</strong></span>@enderror</div></div><div class="form-group row"><div class="col-md-6 offset-md-4"><div class="form-check"><input class="form-check-input" type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}><label class="form-check-label" for="remember">{{ __('Remember Me') }}</label></div></div></div><div class="form-group row mb-0"><div class="col-md-8 offset-md-4"><button type="submit" class="btn btn-primary">{{ __('Login') }}</button>@if (Route::has('password.request'))<a class="btn btn-link" href="{{ route('password.request') }}">{{ __('Forgot Your Password?') }}</a>@endif</div></div></form></div></div></div></div></div>@endsection
Route::post('loginAdmin',"LoginAdmin@login")->name('loginAdminname'); اسم میتونیم بزاریم براش مربوط به ویو پایین
use Session; دقتclass LoginAdmin extends Controller{public function login(Request $data) از فرم پایین همه چی رو بگیر{if($data->email=="pibganos@yahoo.com" && $data->password=="31867453"){Session::put('adminLogged',true); اگه ایمب و رمزش این بود ادمین لاگد رو بریز تو سشنreturn redirect('admin/user');}else{return redirect()->back()->with('error','اشتباهه')->withInput();}}}
Route::group(['prefix' => 'admin' , 'middleware'=>'isAdmin'], function () {
یه گروه روت و ابنکه پیشوند همشون admin/ باشه
تنظیم کرنلشم فراموش نشه
use Session; دقتclass isAdmin{public function handle($request, Closure $next){if(!Session::has('adminLogged')) اون تعجب معکوسش میکنه یعنی اگه تو سشن وجود نداشتreturn redirect('loginAdmin');return $next($request);}}
Route::get('user',"UserAdminController@showUserAdmin");
use App\User;class UserAdminController extends Controller{public function showUserAdmin(){return view("useradmin" , ['users'=>User::get()]);}}
useradmin.blade.php
{{ var_dump($users->toArray()) }}
Route::get('addPost', function () {
$category = DB::table('articles_category')->get();
DB:table یه کلاس گلوبال به همه ی تیبل ها دسترسی میده (اگه مدل نداره تیبلی دو ساعت نریم واسش بسازیم)
return view('newPost' , ['category'=>$category]);
});
newPost.blade.php
<body><form action="{{ url('admin/addPost') }}" method="post" style="text-align: right">@csrf<div class="form-group"><label for="title">عنوان مقاله:</label><input type="text" name="title" class="form-control" id="title" value="{{ old('title') }}"></div><div class="form-group"><label for="title">دسته بندی:</label><select name="category_id">@foreach ($category as $item) این ظرف تو روت بالا تعریف شده<option value="{{ $item->id }}">{{ $item->title }}</option>@endforeach</select></div><div class="form-group"><label for="body">متن مقاله:</label><textarea cols="" rows="5" type="text" name="body" class="form-control" id="body">{{ old('body') }}</textarea></div><div class="form-group"><button type="submit" class="btn btn-success">ثبت مقاله</button></div></form></body></html>
Route::post('addPost',"PostController@post");
use App\Article;use Auth;class PostController extends Controller{public function post(Request $data){$data['user_id'] = Auth::user()->id; این و کتگوری آیدی نیست اینو اینجا میگیریم کتگوری آیدیم از روت 2 تا بالاArticle::Create($data->except('_token'));return redirect()->back()->withInput();}}
});
Article Model:
<?phpnamespace App;use Illuminate\Database\Eloquent\Model;use Pishran\LaravelPersianSlug\HasPersianSlug; دقتuse Spatie\Sluggable\SlugOptions; دقتclass Article extends Model{use HasPersianSlug; از سایت کپی میکنیم با 2 خط بالاpublic function getSlugOptions(): SlugOptions{return SlugOptions::create()->generateSlugsFrom('title')->saveSlugsTo('slug');}protected $fillable = ['title','slug','body','category_id','user_id']; قابل پر شدنpublic function user(){return $this->belongsTo('App\User', 'user_id', 'id');}}
برای نصبشم:
composer require pishran/laravel-persian-slug