Как сделать несколько макетов для CakePHP? - PullRequest
2 голосов
/ 01 августа 2011

Я не совсем понимаю, как создать свой собственный макет для каждой страницы в cakephp.В настоящее время существует файл default.ctp, который я изменил, чтобы иметь мой основной макет и включил код $ content_for_layout.Поэтому все, что я ввел на страницах \ home.ctp, отражается.Но я хочу иметь логин и регистр, а также их отдельные страницы.Как я могу добиться этого?Должен ли я даже редактировать default.ctp?Или создать другой макет для моей главной страницы?

Пожалуйста, помогите.

Ответы [ 2 ]

9 голосов
/ 01 августа 2011

Вы можете указать другой макет в ваших методах контроллера, например,

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

}
3 голосов
/ 01 августа 2011

Но я хочу, чтобы у меня был логин и регистрация, а также отдельные страницы.

«Макет», как его понимают в Cake, в основном это верхний и нижний колонтитулы.И это звучит так, как будто вы имеете в виду макет контента.Вы можете сделать макет содержимого в каждом отдельном файле представления.

Должен ли я даже редактировать файл default.ctp?Или создать другой макет для моей главной страницы?

Да, это для вас, чтобы изменить.Если вам нужно больше макетов, вы можете создать больше в этой папке и указать макет в контроллере (в противном случае по умолчанию используется макет «по умолчанию»).

...