我对Laravel相当新,所以这个问题对某些人来说可能是显而易见的。
在每个HTTP请求运行检查的情况下,例如用户身份验证。是否有更好,更有效或更简单的正确方法来运行这些检查。从我最初的研究看来,这可以使用MiddleWare,例如
来完成- (UIEdgeInsets)widgetMarginInsetsForProposedMarginInsets:(UIEdgeInsets)defaultMarginInsets {
UIEdgeInsets edgeInsets = UIEdgeInsetsMake(0, 44, 0, 0);
return edgeInsets;}
似乎也可以使用路由组,例如
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
});
});
的明显好处之外,还需要检查auth。
由于
在接受你的建议之后,我尝试使用路由分组来控制我的Auth MiddleWare。但这似乎打破了我的网站。
$this->middleware('auth');
我错过了一些明显的东西吗?
答案 0 :(得分:1)
没有真正的区别,我个人使用组标准中间件并在构造中添加异常
答案 1 :(得分:1)
建议的选项对我不起作用,但是当我查看 laravel 文档时,我发现了这一点:
Route::middleware(['web'])->group(function () {
//Your routes here
});
它对我有用。 Laravel 8.*
答案 2 :(得分:0)
使用Route组很容易进行维护/修改,否则你必须记住每个使用某些中间件的控制器,当然这不是一个小型中型应用程序的问题,但这很难在大型应用程序,其中有许多控制器和对中间件的引用。