2011-08-01 3 views
2

私はcakephpの各ページのために私自身のレイアウトをどうやって作るのか、かなり混乱しています。現在、default.ctpがあります。これは私のメインレイアウトを変更し、$ content_for_layoutコードを含んでいます。ですから、私がページ\ home.ctpに入力したものが反映されます。しかし、私はログインと登録のレイアウトとその個々のページを持っていたい。これを達成するにはどうすればいいですか? default.ctpを編集する必要がありますか?または、メインページの別のレイアウトを作成しますか?cakephpに複数のレイアウトを付けるには?

助けてください。

+0

@Juhana感謝しています。 – dwyane

答えて

3

しかし、私はログインを持っているし、レイアウトも彼らの個々のページを登録したいです。

「レイアウト」は、Cakeで理解されているように、ほとんどがヘッダーとフッターです。そしてあなたがコンテンツのレイアウトを指しているように聞こえます。個々のビューファイルでコンテンツのレイアウトを行うことができます。

default.ctpを編集する必要がありますか?または、メインページの別のレイアウトを作成しますか?

はい、変更することがあります。より多くのレイアウトが必要な場合は、そのフォルダにさらにレイアウトを作成し、コントローラでレイアウトを指定することもできます(そうしないと、デフォルトで「デフォルト」のレイアウトになります)。

8

コントローラメソッドで異なるレイアウトを指定することができます。

function index() { 

    $this->layout='my_index_layout'; //app/views/layouts/my_index_layout.ctp 

} 

function view($id) { 

    $this->layout = 'my_view_layout'; //app/views/layouts/my_view/layout.cpt 

} 
+1

'// app/views/layouts/my_index_layout.ctp'と' // app/views/layouts/my_view/layout.cpt'の違いは、関数名に起因しますか? – ozanmuyes

+0

CakePHP 3.3.xの設定では、この変数は廃止予定です。デバッグが有効な場合、CakePHPは代わりに '$ this-> viewBuilder() - > layout( 'my_index_layout')'を使用するよう指示します。 –

関連する問題