2012-03-02 101 views
1

我試圖找到一種在Codeigniter中創建菜單的方法,該菜單根據用戶的訪問級別顯示不同的選項,即如果他們是管理員,編輯者或只是普通用戶。他們的一些選擇將重疊。基於訪問級別的Codeigniter菜單

我曾考慮添加一個if語句給視圖,但這不是很好的MVC。我還考慮過在控制器中創建一個多維數組,以基於用戶訪問級別設置菜單選項。

我真的很感激的想法和意見。

回答

0

每個用戶帳戶應該有一組角色,即儀表板,銷售,支付,產品展示,產品添加/編輯,產品刪除,報告等(可以使用離子驗證團體爲角色)。然後你創建一個顯示菜單的視圖,並且你將記錄的用戶角色傳遞給該視圖。然後,您將瀏覽所有角色並將其與用戶角色進行比較。如果用戶具有查看特定頁面的角色,則可以在菜單中爲該頁面添加鏈接。

就是這樣:-) 希望我幫了忙。

+1

所以你會在視圖中放一個小的if語句來顯示基於用戶角色的特定菜單?我認爲這可能是我要做的,但不確定它是否被認爲是「正確的」MVC。 – chegwin 2012-03-04 20:19:21

+0

是的,確切地說。對不起,如果沒有解釋正確。而關於正確的MVC ......我不知道這是否是最好的方法,但它很簡單,它會工作:)我即將在即將推出的項目中實現它。希望它對你也有幫助。 – Stan 2012-03-05 01:04:13

0

我總是讓這一個比它應該更難。爲什麼不爲每個用戶級別分別提供不同的視圖(部分)?即:

<?php 
if ($this->user_model->isAdmin()) 
{ 
    $this->load->view('user_menu_admin'); 
} 
elseif ($this->user_model->isModerator()) 
{ 
    $this->load->view('user_menu_moderator'); 
} 
elseif ($this->user_model->isMember()) 
{ 
    $this->load->view('user_menu_member'); 
} 
else 
{ 
    $this->load->view('user_menu_guest'); 
} 
+1

我最初使用這種方法,但我發現我複製了很多在多種角色類型中需要的功能。 – chegwin 2012-03-04 20:17:47