我在UserPolicies.php
文件中的showAdmin()
中无法显示Show
in dojo.blade.php
按钮(仅针对管理员(角色=== 1)),即使是管理员类型的用户,我也看不到该按钮。
UserPolicies.php
<?php
namespace App\Policies;
use App\Models\User;
use Illuminate\Auth\Access\HandlesAuthorization;
class UserPolicy
{
use HandlesAuthorization;
/**
* Create a new policy instance.
*
* @return void
*/
public function __construct()
{
//
}
public function showAdmin(User $user){
return $user->role === 1;
}
}
DojoController.php
public function show($id)
{
$dojo = DojoModel::find($id);
$this->authorize('showAdmin', Auth::user());
$fighter = FighterModel::get(['id','name']);
$master = MasterModel::get(['id','name']);
return view('dojo.show', compact(['dojo','fighter','master']));
}
dojo.blade.php
@can('showAdmin')
<a href="{{ url("show-dojo/$d->id") }}" class="btn btn-warning"><i class="fa fa-eye"></i> Show</a>
@endcan
会有什么问题?
1条答案
按热度按时间cld4siwp1#
您还需要把模型:
或
还要确保在
AuthServiceProvider.php
中注册策略,将其放入protected $policies
中,接受Model
作为密钥,接受Policy
作为其值Blade文件中的授权
注册策略