【发布时间】:2016-12-09 06:36:32
【问题描述】:
我对 Laravel 还很陌生,所以这个问题对某些人来说可能很明显。
在每个 HTTP 请求运行检查的情况下,例如 用户身份验证。是否有更好、更有效或更简单的正确方法来运行这些检查。从我最初的研究来看,这似乎可以使用中间件来完成,例如。
public function __construct()
{
$this->middleware('auth');
}
似乎也可以使用路由组,例如。
Route::group(['middleware' => 'auth'], function () {
Route::get('/', function () {
// Uses Auth Middleware
});
Route::get('user/profile', function () {
// Uses Auth Middleware
});
});
这两种方式中的任何一种都有什么好处吗?除了不必在每个控制器身份验证中添加 $this->middleware('auth'); 的明显好处之外,还需要检查。
谢谢
编辑..
在接受您的建议后,我尝试使用路由分组来控制我的 Auth MiddleWare。但这似乎破坏了我的网站。
Route::group(['middleware' => 'auth'], function () {
Route::auth();
Route::get('/home', 'HomeController@index');
Route::get ( '/redirect/{provider}', 'SocialAuthController@redirect' );
Route::get ( '/callback/{provider}', 'SocialAuthController@callback' );
});
我是否遗漏了一些明显的东西?
【问题讨论】:
-
它做同样的事情,所以选择你喜欢的任何方式,并坚持下去
-
所以他们绝对没有区别?
-
Route::auth ();只是声明所有用于注册和登录的路由的一种方式。如果您使用不错的 IDE,您可以单击并转到方法定义,它会显示正在创建的路由。 Laravel 使用了很多抽象、魔术方法和多重继承,所以一个好的 ide 是必须的 -
你能推荐一个与 Laravel 一起使用的好主意吗?
-
Phpstorm 如果你愿意花几英镑,Netbeans 如果你不愿意。
标签: php laravel laravel-5.2 laravel-routing laravel-middleware