【发布时间】:2015-08-12 08:09:29
【问题描述】:
我不知道 laravel 发生了什么,当我执行某些操作时,laravel 会生成无效路由,例如当我打开 cmets 框以单击按钮 cmets 模态框打开罚款但当我在 chrome 开发人员选项中看到时 -> 网络显示我有很多无效的路线。知道为什么会这样吗?
请看附件截图:
Admin 是我的路由前缀
Route::group(['prefix' => 'admin', 'before' => 'allow_only_admin'], function () {
});
http://projecturl.com/admin/order/
Route::filter('allow_only_admin', function () {
if (Auth::check() && !Auth::user()->is('admin')) {
return redirect()->intended('user/login');
} else {
}
});
这是我的 ABC 中间件:
class Abc {
public function handle($request, Closure $next) {
if (\Auth::check() && \Auth::user()->admin) {
return $next($request);
}
return redirect()->route('user.login');
}
}
这是我的 No_auth 过滤器:它检查用户登录并重定向到它的用户角色
Route::filter('no_auth', function () {
if (Auth::check()) {
if (Auth::user()->is('admin')) {
return Redirect::route('orders.all');
}
if (Auth::user()->is('writer')) {
return Redirect::route('windex');
}
if (Auth::user()->is('teamlead')) {
return Redirect::route('tlindex');
}
}
});
这是登录路径:
Route::group(['prefix' => 'user', 'before' => 'no_auth'], function () {
Route::get('login', ['as' => 'user.login', 'uses' => 'Auth\AuthController@showLoginForm']);
});
Route::post('user/login', ['as' => 'user.post.login', 'uses' => 'Auth\AuthController@postLogin']);
Route::get('user/logout', ['as' => 'user.logout', 'uses' => 'Auth\AuthController@getLogout']);
【问题讨论】:
-
你能用 pastebin 发布你的 allow_only_admin 中间件吗?
-
这不是无效的路线。您正在重定向几乎所有请求。
-
你做错了 -> en.wikipedia.org/wiki/HTTP_301
-
我不知道为什么它创建无效以及它是如何重定向的