我有一个时间表应用程序,我在Laravel 5中编写过。我现在想根据用户权限(角色)选择时间表。我有3个级别的用户。
主管取代用户。 管理员取代主管。
管理员用户应该能够看到所有用户时间表。主管应该只能看到与之关联的用户的时间表。用户只能看到自己的时间表。
我有以下方法设置来选择等待批准的时间表。此方法仅适用于用户级别,因为我添加了whereUserId
子句。
如何使以下方法适用于用户(管理员,用户,主管)的所有角色?
/**
* Load timesheets awaiting approval.
*
*/
public function timesheetsAwaitingApproval()
{
return $this->timesheet->whereUserId($this->userid)->whereStatus('Submitted')->get();
}
答案 0 :(得分:0)
尝试使用模型之间的hasManyThrough关系来获取所需的时间表,请查看doc。当然,只有你
才能使用主管示例
public function timesheets()
{
return $this->hasManyThrough('Timesheet::class', 'User::class', 'timesheet_id', 'user_id');
}
public function timesheetsAwaitingApproval()
{
return $this->timesheets->whereStatus('Submitted')->get();
}
或类似的东西,这只是一个可能适合你的想法。