我与laravel合作已经有一段时间了,我已经使用中间件和gates进行了简单的ACL。我有两种类型的用户:“管理员”和“模型斗士”,每个用户都有一个名为“ categoria”的列验证他属于哪个类别。我要做的只是检查用户“ categoria”是否等于中间件和“ gategoria”中的用户,这是我编写的一些代码。
在AuthServiceProvider.php
<div class="flex-container" id="container">
<div class="child" id="coop" ></div>
<div class="child" id="wai"></div>
<div class="child" id="educ"></div>
<div class="child" id="tech"> </div>
<div class="parent" id="index"></div>
<div class="child" id="pmo"></div>
<div class="child" id="hobby"></div>
<div class="child" id="cook"></div>
<div class="child" id="cont"></div>
</div>
在web.php
Gate::define('eAdmin', function ($user) {
return $user->categoria == "administrador";
});
我的迁移
Route::resource('/menus', 'MenuController')->middleware('can:eAdmin');
这很完美,只有管理员可以访问MenuController中的功能,但是我想知道这是否是正确的方法,或者 我应该创建角色表或为模型创建策略。谢谢。