2011-07-01 2 views
0

私はCakePHP 1.3とユーザーが管理するためのアクセス権を持つ組織のドロップダウンを含むレイアウトを使用していますので、そのドロップダウンにuseridを含む組織を設定しようとしていますログインしていますが、ユーザーが何かを見てからヘッダーで使用できるようにする前に、その値を入力します。ログインしたすべてのページにドロップダウンが表示される必要があります。私は、これらの組織をappcontrollerでプルするためにクエリを追加しようとしましたが、useridはまだフィルタの前に使用できませんでした。どこで、どうすればいいですか?それはセッション中であるべきか、それとも使用するためのより良い構築物がありますか?素子?ベストプラクティスのドロップダウンサイトワイドを入力する

答えて

0

私のアプリでは、beforeRender内からuser_idを使用することは問題ありません(認証コンポーネントを使用している場合)。

$this->Auth->user('id')と一緒に使用できます。

私は次のようにします:ユーザがログインしている場合はAppControllerをチェックインします。もしそうなら、データベースから(またはあなたの情報を入手しても)希望の情報を取り出して、$dropdown例えば。
ユーザーがログインしていない場合、$dropdownfalseになります。
あなたは今$dropdownが偽であるかどうか、あなたが簡単にチェックを行うことができます(これはあなたのすべてのページにそれを持っていることが重要です)、あなたのレイアウトで今$this->set(compact('dropdown'))

を表示するには、この変数を利用できるようにします。そうでない場合は、変数を操作してユーザーにドロップダウンを表示することができます。

+1

ただし、beforeRenderを使用することが重要です。 beforeFilterは間違っているでしょう。なぜなら、これはすべての場合に開始/トリガーされないからです。 beforeRender、しかし、です。 – mark

関連する問題