L5.5 路由如何组合 group namespace middleware prefix ?
Route::middleware('CheckAdminLogin')->prefix('dashboard')->namespace('Dashboard')->group(function () {
Route::any('/', 'IndexController@index')->name('dashboard.index'); //首页
Route::any('/login', 'IndexController@login')->name('dashboard.login'); //登陆
Route::any('/logout', 'IndexController@logout')->name('dashboard.logout'); //退出登录
});
这样写总是提示我:ErrorException thrown with message "Trying to get property of non-object"
我写了个 CheckAdminLogin.php 在 App\Http\Middleware 下,内容如下:
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class CheckAdminLogin
{
protected $except = [
'/dashboard/login'
];
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle(Request $request, Closure $next)
{
if(!$request->session()->has('admin_id') || !$request->session()->has('allow_login') && $request->session()->get('allow_login') == 1) {
return route('dashboard.login').'?return_url='.$request->fullUrl();
}
return $next($request);
}
}
并且在 Kernel.php 中的 $routeMiddleware 中注册:
'CheckAdminLogin' => \App\Http\Middleware\CheckAdminLogin::class,
刚刚接触laravel的小白,请多指教。
推荐文章: