вывод с помощью renderPartial части другой модели

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
aalexeev81
Сообщения: 18
Зарегистрирован: 2009.11.23, 14:13

вывод с помощью renderPartial части другой модели

Сообщение aalexeev81 »

Возникла потребность вывести views функцией renderPartial из одной модели в другую. Как это сделать?

Подробности
У меня есть views в следующим виду (дерево каталога)
views/
+a/ - первая модель
++helloa.php
+b/ - вторая модель
++hellob.php

Файл helloa

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

<?php echo "It's Controller A"; ?>
<?php $this->renderPartial('/b/hellob'); ?>
Файл hellob

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

<?php echo "It's Controller B"; ?>
В результате вызова helloa хотелось бы получить следующий вывод

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

It's Controller A
It's Controller B
Как это сделать, в том варианте что я написал происходит ошибка: Fatal error: Call to a member function getErrors() on a non-object in /home/yurij/www/home.ru/yii/framework/web/helpers/CHtml.php on line 1444

ПС Экспериментирую, поэтому пожалуйста не предлагайте hellob поместить в A, и вызывать по средствам $this->renderPartial('hellob'); такой вариант работает! а вот приведены мою нет.
SpiLLeR
Сообщения: 350
Зарегистрирован: 2009.09.17, 16:47
Откуда: Санкт-Петербург
Контактная информация:

Re: вывод с помощью renderPartial части другой модели

Сообщение SpiLLeR »

Если вы делаете именно, как описали, то проблем быть не должно.
Проблема возникает скорее всего из-за того, что вы в представление B используете модель и он начинает на это ругаться, что вы ему ее не передали.
Попробуйте в контроллере А:

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

$modelB = new B();
$this->render('helloa', array('modelB' => $modelB));
 
В view

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

<?php
echo "It's Controller A";
$this->renderPartial('/b/hellob',array(
    'modelB' => $modelB,
)); ?>
Предупрежден - значит вооружен.
devKP.ru
aalexeev81
Сообщения: 18
Зарегистрирован: 2009.11.23, 14:13

Re: вывод с помощью renderPartial части другой модели

Сообщение aalexeev81 »

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

На всякий случай описываю откуда ошибка возникает ошибка.
Проблема у меня появлялась из-за того, что я делал модель A и B содержащие самостоятельные формы, и вызов в модели B

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

CHtml::errorSummary($model); 
вызывает ошибку. К сожалению, просто убрать эту строчку можно, но тогда потеряется вывод ошибок/валидатора второй формы, думаю как это решить...
aalexeev81
Сообщения: 18
Зарегистрирован: 2009.11.23, 14:13

Re: вывод с помощью renderPartial части другой модели

Сообщение aalexeev81 »

Проблема решена... спасибо всем
Аватара пользователя
Ozzy
Сообщения: 269
Зарегистрирован: 2009.04.02, 15:09
Откуда: Украина, Одесса

Re: вывод с помощью renderPartial части другой модели

Сообщение Ozzy »

Просто модель передать через тот же рендерПартиал, чего тут решать )
Мой маленький блог - http://dbhelp.ru
Ответить