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:
<?php
namespace 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