【发布时间】:2017-12-22 17:47:07
【问题描述】:
我试图在我的Middleware 中给出条件。
这是我的脚本
if (auth()->check() && auth()->user()->type == 'TP001') {
$menu->add("User Control",array('nickname' => "user",'class'=>'treeview'))
->append(' <b class="caret"></b>')
->prepend('<span class="glyphicon glyphicon-user"></span> ');
$menu->user->add('Daftar User','user/list');
$menu->user->add('Tipe User','user/type');
} else {
/* Some code here...*/
}
上面的脚本即使我已经使用'TP001'(总是在其他)登录,我也看不到带有条件的菜单,然后我尝试用这个来修复我的代码
auth()->user()->isDeveloper()
我的模型
public function isDeveloper()
{
return ($this->type == 'TP001');
}
但仍然无法正常工作,有没有办法以正确的方式给出上述条件?在此先感谢,并为我的英语不好感到抱歉。
我的内核
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
\App\Http\Middleware\Frontend::class,
];
【问题讨论】:
-
你的
auth()->user()->type在哪里?type存在吗?告诉我你的dd(auth()->user());我可能会有所帮助 -
@vietnguyen09 当我在中间件中尝试
dd(auth()->user())时,我得到 null 但是当我在控制器中尝试它时,它会显示数组的东西 -
所以很明显你的条件不能工作,因为你的
auth()->user()是空的。现在的问题是如何在中间件中获取auth()->user()? -
你可以通过 Auth::user() Facade 获取用户。
-
我已经添加了这个
use Illuminate\Support\Facades\Auth;,但仍然无法正常工作
标签: php laravel laravel-5 laravel-5.4 laravel-middleware