2015-12-06 25 views
0

我有一個我在Laravel 5中編寫的時間表應用程序。現在我想根據用戶權限(角色)選擇時間表。我有3個級別的用戶。Laravel 5根據用戶角色選擇行的範圍

  • 用戶
  • 管理員
  • 主管

主管取代一個用戶管理取代主管

管理員用戶應該能夠看到所有用戶時間表。主管應該只能看到與其關聯的用戶的時間表。用戶只能看到他們自己的時間表。

我有以下方法設置來選擇時間表等待批准。此方法僅適用於用戶級別,因爲我添加了whereUserId子句。

如何讓以下方法適用於用戶(管理員,用戶,主管)的所有角色?

/** 
* Load timesheets awaiting approval. 
* 
*/ 
public function timesheetsAwaitingApproval() 
{ 
    return $this->timesheet->whereUserId($this->userid)->whereStatus('Submitted')->get(); 
} 
+0

這個timesheetsAwaitingApproval()方法在哪裏定義? –

+0

您必須與主管和用戶建立關係,以瞭解哪些用戶與主管關聯。 – smartrahat

回答

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(); 
} 

或者類似的東西,那只是一個想法,可能會爲你工作,這隻會工作。