【发布时间】:2015-09-09 19:04:48
【问题描述】:
这就是我试图在我的 routes.php 文件中完成的事情
if(Auth::user()->isCompany()){
$middleware = "auth.company";
$namespace = 'Company';
} else {
$middleware = "auth.admin";
$namespace = null;
}
Route::group(['prefix' => 'admin'], 'middleware' => $middleware , 'namespace' => $namespace , function(){
Route::get('/','AdminController@getIndex');
Route::get('users', 'UsersController@getIndex');
});
我想为每个用户角色使用相同的路由组,但会由基于用户角色的不同命名空间下的不同控制器处理。
我不想把它放在同一个控制器上,因为它会用很多条件弄乱控制器。
这里的问题是我无法访问 Auth,我该怎么办?
Auth::user() 是 null 因此导致此错误 Trying to get property of non-object
我目前已登录。如果我删除这段代码,我仍然登录。这是在使用 auth 中间件的路由组内
更新:我已经尝试过@samrap 的答案。这是我的routes.php 文件的样子。我仍然收到Trying to get property of non-object 错误
<?php
Route::group(['middleware' => 'auth'], function()
{
dd(\Auth::user()->id);
// Insert the code above here ...
});
【问题讨论】:
-
确切的错误是什么?
-
@samrap "试图获取非对象的属性" 因为 Auth::user() 为空
标签: php laravel-routing laravel-5.1