我正在尝试授权来宾显示登录表单(如果未登录)。
@can('guest')
<a href="/login">Let's Start</a>
@endcan
我需要在哪里定义访客
答案 0 :(得分:3)
默认情况下,Blade模板引擎提供所谓的authentication directives
,它确定是否对用户进行了身份验证:
@auth
// User is authenticated.
@endauth
@guest
// User is not authenticated.
@endguest
答案 1 :(得分:1)
prd的答案是一种非常好的方法,并且可以在较新的laravel版本中使用。 (可能从5.5开始)
但是,如果您仍然想使用can('guest')
格式,则可以这样做。
您需要将自定义的Blade指令放在AppServiceProvider.php
文件中,并放在boot
方法中。
Blade::if('can', function ($role) {
if($role=='guest'){
return !(auth()->check());
}
// you can also put codes for can('admin') etc
// the return value should be true or false.
});
有关更多信息,您可以阅读this。