Laravel 在null上调用成员函数middleware()
我在路由Laravel时使用以下中间件:Laravel 在null上调用成员函数middleware(),laravel,routing,middleware,laravel-5.4,Laravel,Routing,Middleware,Laravel 5.4,我在路由Laravel时使用以下中间件: Route::group(['prefix' => 'api/'], function() { Route::resource('admin', 'adminController')->middleware('auth'); Route::resource('profile', 'profileController')->middleware('role'); }); 我在URL中调用“admin”或“profile
Route::group(['prefix' => 'api/'], function() {
Route::resource('admin', 'adminController')->middleware('auth');
Route::resource('profile', 'profileController')->middleware('role');
});
我在URL中调用“admin”或“profile”路径时出现此错误
您的资源控制器很可能未解析为实际控制器。有些东西需要检查
- 检查您是否有一个adminController,并且类名的大小写是否正确
- 检查控制器是否位于默认命名空间中,如果不是,请更改控制器命名空间,或向路由添加命名空间属性
- 检查您的控制器是否在启动时导致被忽略的异常,从而导致控制器为空
Route::resource()
不返回任何内容。它是空虚的。它不返回对象
在Laravel 5.5(开发中)中,Route::resource()
将返回一个对象,以便流畅地向其添加选项。使用此选项
Route::prefix("/dashboard")->middleware(['first','second'])->group(function(){
});
只需颠倒顺序:
Route::middleware('scope:clock-in')->resource('clock', 'ClockController');
正如lagbox所说:
Route::resource()
不返回任何内容
但是,中间件可以解决此问题。在Laravel 8.x中,您可以通过以下方法解决此问题:
Route::group(['middleware' => 'auth','middleware' => 'role'], function () {
..........
});
我在添加“middleware('auth')”时遇到了这个错误。Hi@ramzi,您是如何将中间件添加到资源的,我的意思是您找到了什么方法将中间件添加到资源。为什么这样做。以前我有
Route::prefix('app')->group(function(){//routes here})->中间件('auth')代码>不起作用,但将中间件调用放在组(function())工作之前。。。。但是为什么呢?非常感谢。