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

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

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