我無法弄清楚哪種是創建和使用控制器的正確方法。假設我們有一個帶有索引方法的控制器來顯示數據庫記錄,并且我們有以下數據庫結構:|id|名稱|活躍|所以我想僅顯示用戶端的活動記錄和管理端的所有記錄(活動和非活動)。從邏輯上講,對于這兩個操作,我們都會使用索引方法,對吧?我們是否應該在用戶端使用索引方法并為管理端創建另一個方法,或者反之亦然? 什么是最靈活的解決方案,以便我們可以對兩個視圖使用 Route::resource ?
2 回答

手掌心
TA貢獻1942條經驗 獲得超3個贊
首先,您必須在應用程序中實現一個角色系統,并設置 2 個角色管理員和用戶。 您可以通過多種方式進行過濾,但我建議的方式是:
如果角色是用戶,則在模型中使用一個范圍來刪除 inactif 范圍。
在模型中使用特征來為每個角色返回正確的數據,例如特征中的 2 個方法,一個用于用戶,另一個用于管理員。
這兩種方法可以在模型級別上進行過濾,這就是我的建議,擁有一個高質量的軟件。并且不要有骯臟和硬編碼的解決方案。因為如果將來這種情況發生變化,您不必交叉所有代碼,只需編輯特定部分即可。
您可以查看 laravel 文檔以查看有關概念的詳細信息。

Cats萌萌
TA貢獻1805條經驗 獲得超9個贊
如果您想繼續使用相同的方法,則僅當用戶不是管理員時才添加對數據庫查詢的限制。例如
$query = \App\Model::query();
if( !Auth::user()->isAdmin() )
{
$query->where('active', true);
}
$records = $query->get();
- 2 回答
- 0 關注
- 188 瀏覽
添加回答
舉報
0/150
提交
取消