make:middleware
職人コマンドを使用し、新しいミドルウェアを作成するには:
php artisan make:middleware AdminMiddleware
このコマンドは、あなたのapp/Http/Middleware
ディレクトリ内の新しいAdminMiddleware
クラスを配置します。このミドルウェアでは、ログインしているユーザーがadminの場合にのみルートへのアクセスを許可します。それ以外の場合は、ユーザーをhome
URIにリダイレクトします。ここで
<?php
namespace App\Http\Middleware;
use Closure;
class AdminMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (! auth()->user()->is_admin) {
return redirect()->route('home');
}
return $next($request);
}
}
私はあなたがミドルウェアあなたapp/Http/Kernel.php
ファイルのキーを割り当てる必要がありますis_admin
登録ミドルウェア
という名前のユーザーテーブルの列を持っているassummingています。既定では、このクラスの$routeMiddleware
プロパティにはLaravelに含まれるミドルウェアのエントリが含まれています。あなた自身を追加するには、単にこのリストに追加して、あなたの選択したキーを割り当てます。
protected $routeMiddleware = [
'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
...
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'admin' => \App\Http\Middleware\AdminMiddleware::class,
];
ミドルウェアはHTTPカーネルで定義されていたら、ルートのグループにミドルウェアを割り当てるためにgroup
メソッドを使用できます:たとえば
Route::group(['middleware' => ['admin']], function() {
// all your admin routes comes here
});
Docs
のためのあなたのコードを表示します私はこの目的のためにLaravelミドルウェアを使用することをお勧めします。https://laravel.com/docs/5.3/middleware –
私は2日間laravelのドキュメントを読んだが、まだそれを完了できませんでした。私は助けを求める必要がありますこのコミュニティ。ご理解いただきありがとうございます。ありがとうございます。 – Mark
@Amit Guptaはい、私はLaravelミドルウェアを試して成功しましたが、今はポリシーを使用する方法を学びたいので、ポリシーを追加することでその目標を達成できることを願っています。私のプロジェクトにポリシーを追加してもらえますか?私はこのウェブサイトを構築してオープンソースにしています。私のような初心者が学習プロセスの学習曲線を減らし、より多くの時間と空間を覚えていくことを願っているからです。ありがとう – Mark