Yii renderPartial подхватить layout

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
NeverDie
Сообщения: 69
Зарегистрирован: 2012.05.13, 04:05
Откуда: Минск
Контактная информация:

Yii renderPartial подхватить layout

Сообщение NeverDie »

Здравствуйте! Подскажите, пожалуйста, есть ли способ, при котором при выводе через renderPartial, можно подхватить только 1 вышестояющий layout. Структура layouts у меня такая:
Файл //layouts/main

Код: Выделить всё

<html>
...
<?=$content?>
...
</html>
Файл //layouts/templates/tmp_two_columns

Код: Выделить всё

<?php $this->beginContent('//layouts/main'); ?>
<aside class = "c-left">
    <?php echo $content; ?>
</aside>
<aside class = "c-right">
    <?php $this->beginContent('//layouts/parts/right_column'); ?>
    <?php $this->endContent(); ?>
</aside>
<?php $this->endContent(); ?>
Возможно ли сделать так, чтобы при задании

Код: Выделить всё

public $layout='//layouts/templates/tmp_two_columns';
...
$this->renderPartial('update',array(
    'model'=>$model,
));
...
 
через renderPartial подхватывался данный layout и выводился вместе с update, а layout main игнорировался ?

Аватара пользователя
Ghost_nsk
Сообщения: 811
Зарегистрирован: 2012.01.01, 00:45
Откуда: Новосибирск
Контактная информация:

Re: Yii renderPartial подхватить layout

Сообщение Ghost_nsk »

Код: Выделить всё

<?php
public function actionPageUpdate(){
$this->layout = '//layouts/templates/tmp_two_columns';
...
}
?>

Аватара пользователя
NeverDie
Сообщения: 69
Зарегистрирован: 2012.05.13, 04:05
Откуда: Минск
Контактная информация:

Re: Yii renderPartial подхватить layout

Сообщение NeverDie »

Ghost_nsk писал(а):

Код: Выделить всё

<?php
public function actionPageUpdate(){
$this->layout = '//layouts/templates/tmp_two_columns';
...
}
?>
renderPartial проигнирурует данную запись и вернет лишь содержимое файла update. Мне же необходимо, что бы вернулось содержимое ещё и данного layout, но проигнорировался main

Аватара пользователя
NeverDie
Сообщения: 69
Зарегистрирован: 2012.05.13, 04:05
Откуда: Минск
Контактная информация:

Re: Yii renderPartial подхватить layout

Сообщение NeverDie »

Я ещё думал о создании пустого layout и вывод в него содержимого через обычный render. Но хотелось бы решить задачу без этого костыля

Аватара пользователя
Ghost_nsk
Сообщения: 811
Зарегистрирован: 2012.01.01, 00:45
Откуда: Новосибирск
Контактная информация:

Re: Yii renderPartial подхватить layout

Сообщение Ghost_nsk »

че ты мне паришь, у меня все ок работает на всех проектах :)

контроллер:

Код: Выделить всё

<?php
public function actionPageUpdate(){
$this->layout = '//layouts/templates/tmp_two_columns';
// тут формируем переменную $model
...
$this->render('page/update',array('model'=>$model));
}
?>
Отображение:

Код: Выделить всё

<h4 class="grey">Изменение анкеты:</h4>
<?php echo $this->renderPartial('page/_form', array('model'=>$model)); ?>
P.S. //layouts/templates/tmp_two_columns используется вместо main, то есть это равнозначный layout, а не дополнение :)

kukuruku
Сообщения: 1310
Зарегистрирован: 2011.02.14, 11:36

Re: Yii renderPartial подхватить layout

Сообщение kukuruku »

renderPartial специально не подхватывает layout, иначе зачем он нужен?
или делать обрезанный layout и вызывать через рендер

Ответить