0
我有一個控制器有很多方法應該只允許執行,如果我有一定的價值在我的會話。只執行方法,如果會話值laravel 5
這就是我目前所做的: 我做了一個私有方法,可以返回值'是'或'不是'我在每一個需要驗證的方法中調用。如果我得到返回值'是',我運行我的代碼。
所以我在我的代碼中重複了很多。必須有更好的辦法
我有一個控制器有很多方法應該只允許執行,如果我有一定的價值在我的會話。只執行方法,如果會話值laravel 5
這就是我目前所做的: 我做了一個私有方法,可以返回值'是'或'不是'我在每一個需要驗證的方法中調用。如果我得到返回值'是',我運行我的代碼。
所以我在我的代碼中重複了很多。必須有更好的辦法
當然有更好的辦法。您正在尋找一箇中間件。首先,創建一個:
php artisan make:middleware SessionMiddleware
編輯您剛纔創建的文件:
public function handle($request, Closure $next)
{
if (SESSION_KEY_IS_NOT_OK) {
abort(403);
}
return $next($request);
}
通過編輯您的應用程序註冊它/ HTTP/Kernel.php文件
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'my_session' => \App\Http\Middleware\SessionMiddleware::class,
];
然後,在你控制器編輯構造函數:
public function __construct()
{
$this->middleware('my_session');
}
什麼是您的實際題?那麼你可以分享一些你的代碼嗎? – Cleb