Вызов функции в контроллере Yii с помощью renderPartial

Код от контроллера:

public function actionSomeName($param){
    do something here...

    $this->renderPartial('_formCalculations', array(
        'modelX'=>$modelX,
        'modelY'=>$modelY,
    )); 

}

Я хочу вызвать эту функцию, на мой взгляд, но это не сработает. $this->renderPartial правильно? Думаю, нет, потому что это только для просмотров? Но какую функцию мне тогда использовать?

$this->renderPartial('Controllername/Somename',array("param"=>"value"));

person Yves Dejager    schedule 26.11.2012    source источник
comment
почему бы вам не вызвать эту функцию в контроллере и не отправить ее вывод для просмотра во время рендеринга?   -  person hemc4    schedule 26.11.2012
comment
Потому что я вызываю эту функцию в другом представлении   -  person Yves Dejager    schedule 26.11.2012


Ответы (2)


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

Вы можете использовать render / renderPartial. Render / render: частичная ссылка на файл представления, а не на действие контроллера

Вы также можете добавить свою логику в код (в вашем примере часть «сделай что-нибудь здесь ...»), но это плохой MVC!

Другой альтернативой является использование виджета.

person Brett Gregson    schedule 26.11.2012

К сожалению, вы не можете использовать renserPartial по отдельности, но можете сделать это так:

$body = $this->renderPartial('Controllername/Somename',array("param"=>"value"),true);

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

person shgnInc    schedule 17.09.2013