我正在学习本教程https://learn2torials.com/a/laravel-authentication-based-on-roles。
工作原理很好,实现起来也很简单,但是我想隐藏一些管理角色的路由,所以我需要实现权限,比如'can_view‘、'can_update’等等。我读过一些关于盖茨和策略的内容,但是我仍然很困惑。
是扩展本教程的简单方法吗?我想避免使用包空间/权限。
提前谢谢!
发布于 2022-02-05 16:54:18
您可以使用策略轻松地解决这个问题。
只需使用您的策略定义在app\Policies folder中创建一个文件:
<?php
namespace App\Policies;
use App\Models\User;
use App\Models\Expedient;
class ExpedientPolicy
{
/**
* Editing allowed for the person in charge of an open expedient
* @param \App\Models\User $user
* @param \App\Models\Expedient $expedient
* @return bool
*/
public function editExp(User $user, Expedient $expedient) {
return (!$expedient->exp_close && ($expedient->responsible == $user->id));
}
}并在app\Providers\AuthServiceProvider.php中注册
protected $policies = [
'App\Model' => 'App\Policies\ModelPolicy',
Expedient::class => ExpedientPolicy::class,
];现在您可以将此策略用于
@can('editExp', $expedient)
https://stackoverflow.com/questions/70999062
复制相似问题