2012-01-05 11 views
1

対応するurl "domain/controller/index"を持つ "index"というページと、対応するurl "admin_index"という別の ページを、ドメイン/管理者/コントローラー/索引 "を選択します。 トリックは、両方のページが同じビューを使用してレンダリングし、ロジックの同じ機能を使用し、ページのパラメータをオンにすると、ビューがレンダリングされるURLのビューを示すフラグになります。CakePHP:同じコントローラ機能を使って2ページをレンダリングする方法

現在、私の「インデックス」ページには、データがあるテーブルがあるので、必要です。 このページにはコントローラ側に相当量のロジックが必要なページ用のスマートフィルタもあります。 私の問題は、現在、すべてのユーザーに共有したくない「編集」ボタンが各行にあることです。

現在、私はこの種のページをWebサーバー(私の場合はApache)からのアクセスを制限して保護することによって、この種のページを処理しています。

コントローラー機能を複製せずにこれを実装する方法のアイデアはありますか?

答えて

1

(私はCakePHPの2.0.xのアプリでそれをテストしてみたが、具体的な2.0である必要があり、このコードでは何もない)、これを試してみてください:

//controller 
public function index($admin = false) { 
    $this->set(compact('admin')); 
} 
public function admin_index() { 
    $this->index(true); //calls the index function to do all that stuff 
    $this->render('index'); //tells it to render the 'index' view 
} 

あなたが/indexページをヒットすると、すべてがあるべきいつものように。 admin_indexを押すと、index関数のロジックが実行され、indexビューを使用するように指定されます。

関連する問題