2012-03-02 18 views
1

Codeigniterには、ユーザーのアクセスレベルに応じてさまざまなオプションを表示するメニューを作成する方法を見つけようとしています。つまり、管理者、エディタ、または通常のユーザーの場合です。オプションの一部が重複します。Codeigniterメニューはアクセスレベルに基づいて

if文をビューに追加することを検討しましたが、これはあまり良いMVCではありません。また、ユーザーのアクセスレベルに基づいてメニューオプションを設定するコントローラー内に多次元配列を作成することも検討しました。

私は本当にアイデアや意見に感謝します。

答えて

0

は、ユーザーアカウントのそれぞれは、などの役割のセット、すなわち、ダッシュボード、販売、支払い、製品、製品の追加/編集、製品の削除、レポートを、持っている必要があります(とイオン認証のグループを使用することができます役割)。次に、メニューを表示するビューを作成し、ログに記録されたユーザーの役割をそのビューに渡します。次に、すべての役割を調べ、それらをユーザーの役割と比較します。ユーザーが特定のページを表示するロールを持っている場合は、そのページへのリンクをメニューに追加します。

これはそれです:-) 私は助けてくれました。

+1

ユーザーロールに基づいて特定のメニューを表示するには、ビュー内に小さなifステートメントを挿入しますか?私はこれがおそらく私がやることだと思うが、それが「正しい」MVCであるかどうかは分からなかった。 – chegwin

+0

はい、正確です。申し訳ありませんが、それを正しく説明していない場合。そして、正しいMVCについて...それはそれを行う最良の方法であるかどうかわかりませんが、それは十分に簡単で、うまくいくでしょう:)そして私は次のプロジェクトでそれを実装しようとしています。それがあなたにも役立つことを願っています。 – Stan

0

私はいつもこれよりももっと難しくしています。なぜ、ユーザーレベルごとに個別のビュー(部分)を持たないのですか? Ieは:

<?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

関連する問題