2014-01-16 3 views
0

Я работаю над проектом в cakephp. Я использую файл View/Layouts/default.ctp для хранения своих верхних и нижних колонтитулов, которые будут применяться ко всем моим страницам в приложении. Однако есть еще один макет, который я хочу использовать только определенные страницы, а также верхний и нижний колонтитулы.Cakephp, используя несколько макетов для одной и той же страницы

Как я могу использовать страницу как в макетах?

+0

Почему вы хотите, чтобы оба макета на одной странице? –

ответ

1

только один макет может быть использован для каждой загрузке страницы. Тем не менее, вы можете разместить код заголовка и нижнего колонтитула в elements, который затем можно использовать в обоих ваших макетах.

0

Вы можете расширить виды. Поместите верхний/нижний колонтитул в View/Common/default.ctp и продолжите его.

$this->extend("/Common/default"); 

Вы также можете использовать элементы или блоки, в зависимости от того, как настроен ваш макет и что вам нужно. Read more

0

Вы можете изменять макеты с контроллера или просматривать в зависимости от вашей логики.

// from a controller 
public function admin_view() { 
    // stuff 
    $this->layout = 'admin'; 
} 

// from a view file 
$this->layout = 'loggedin'; 

Для справки: http://book.cakephp.org/2.0/en/views.html#layouts

0
You can use multiple layout.......... 

class IndexController extends AppController { 

    public function test1() { 
     $this->layout = 'layout1'; 
    } 

    public function test2() { 
     $this->layout = 'layout2'; 
    } 

    public function testn() { 
     $this->layout = 'layoutn'; 
    } 

} 
Смежные вопросы