【发布时间】:2017-10-21 01:42:07
【问题描述】:
我有一个应用程序,它将是一个 SaaS 并且正在利用用户角色。当然,控制器需要根据用户角色或权限转发不同的数据,但是我认为这种方法可能会导致我使用庞大的控制器,我想知道是否有更聪明的方法来做到这一点?例如我的用户创建方法:
public function create()
{
if (Auth::user()->isAdmin()) {
$clinics = Clinic::pluck('name', 'id');
$roles = Role::pluck('display_name', 'id');
}
else{
$clinics = Clinic::where('id', Auth::user()->clinic_id)->get()->pluck('name', 'id');
$roles = Role::where('name', '!=', 'admin')->get()->pluck('display_name', 'id');
}
$states = State::pluck('name', 'id');
$cities = City::pluck('name', 'id');
return view('users.create', compact('user', 'clinics', 'states', 'cities', 'roles'));
}
当我只实现管理员和非管理员用户时,现在这还可以,但是当角色变得复杂时,有没有更简洁的方法来组装它?
【问题讨论】:
-
您可以使用模型存储库并将用户角色检查移入其中。