cakephpで3つのモジュールを用意する必要があります。 1つはadmin、hotel admin、guestです。これらの3つは同じログイン画面を持つ異なる種類のユーザーですが、内部レイアウトは完全に分離されています。cakephpアプリケーションの複数のモジュール
3つのappフォルダのような3つのフォルダ構造をそれぞれ別々に持つことができますか、これらのユーザーにはルーティングを使用する必要があります(コントローラが混在するため操作が難しいです)。
cakephpで3つのモジュールを用意する必要があります。 1つはadmin、hotel admin、guestです。これらの3つは同じログイン画面を持つ異なる種類のユーザーですが、内部レイアウトは完全に分離されています。cakephpアプリケーションの複数のモジュール
3つのappフォルダのような3つのフォルダ構造をそれぞれ別々に持つことができますか、これらのユーザーにはルーティングを使用する必要があります(コントローラが混在するため操作が難しいです)。
モジュールを「プラグイン」として作成すると、モデル、ビュー、コントローラが別々になります。プラグインのデフォルトのルーティングは、/plugin_name/controller_name/action
からアクセスできるということです。プラグインは独自のレイアウトを持つことさえできます。あなたのケースの主なアプリケーションは、ユーザーの認証とアクセス許可の確認に減らされます。
さらに詳しい情報:
1.3:http://book.cakephp.org/1.3/en/view/1111/Plugins
2.0:http://book.cakephp.org/2.0/en/plugins.html
三つのモジュールは基本的に同じコントローラとモデルを持っていた場合、私は唯一のルーティング使用します。
複数のプレフィックスルーティングを組み合わせてlayoutsにすると、問題が解決するはずです。コメントでJoepが述べたように、コントローラ内のアクションは簡単な名前付け方式admin_index(), hotel_admin_index() and guest_index()
に従うので、コードを簡単に整理できます。
AppControllerで次のコードを使用すると、レイアウトの切り替え(default.ctp、admin.ctp、hotel_admin.ctpなど)を処理できます。
function beforeRender() {
if (isset($this->params['prefix']) {
if ($this->params['prefix'] == 'admin') {
$this->layout = 'admin';
} else if ($this->params['prefix'] == 'hotel_admin')
$this->layout = 'hotel_admin';
}
}
}
あなたも、さらに一歩それを取ると、すべての静的リソースを分離することができます(つまり/img/admin/new-blah.png)
使用ルーティング。なぜこれらの混合コントローラは操作が難しいでしょうか? admin_index()、hotel_admin_index()、guest_index()などのアクションのリストがあります。 – Joep