Как: Вызов метода: renderPartial () - статически? - PullRequest
9 голосов
/ 12 августа 2011

Как я могу вызвать этот метод в Yii Framework:

$this->renderPartial(string $fileNameToRenderData, bool $wheaterToReturnOrEchoDirectly);

Статически, как это:

GodForbiddenClassName::renderPartial(string $fileNameToRenderData, bool $wheaterToReturnOrEchoDirectly);

Ответы [ 4 ]

21 голосов
/ 12 августа 2011

Возможно, вы захотите взглянуть на renderInternal , который я использовал в пользовательских функциях класса и т. Д. Его можно вызвать так:

$ccc = new CController('context');
$html = $ccc->renderInternal($view_file_string, array('data'=>$data), true);
9 голосов
/ 27 октября 2011

Мне нужно использовать частичное рендеринг в модели, у меня был такой код

    public function sendEmail(){
        $emailTemplate = new EmailTemplate();
        $message = $emailTemplate->getEmailTemplate(EmailTemplate::AGENT_CONTACT_REFFER);
        $message = $emailTemplate->replaceConstantWithValues($this->agent,$message);
        $message = $emailTemplate->replaceConstantWithValues($this->contact,$message);
        //$message = $emailTemplate->replaceConstantWithValues($this->contact->notes,$message);
        $message = str_replace("[CONTACT_NOTES]", Yii::app()->controller->renderPartial('application.views.note._notes', array('notes'=>$this->contact->notes,'showLinks'=>false),true),$message);
        $message = $emailTemplate->replaceConstantWithValues($this,$message);

        $email = Yii::app()->email;
        $email->from = $this->referringAgent->email;
        $email->to = $this->agent->email;
        $email->subject = "An agent has referred a contact to you";
        $email->message = $message;
        $email->send();
    }

Здесь я использовал Yii :: app () -> controller-> renderPartial

4 голосов
/ 12 августа 2011

Кажется, что это невозможно, поскольку рендеринг выполняется представлениями "от имени" контроллера (или преемника CBaseController)

Но в режиме консольного приложения вы можете использовать это:

CConsoleCommand->renderFile()

См. http://www.yiiframework.com/doc/api/1.1/CConsoleCommand

1 голос
/ 14 августа 2013

Проверьте эту статью в yii , написанную мной ..:)

==== >>> $ emailTemplate = $ this-> renderPartial ('template / templatecontact', array (), true); // Получение содержимого шаблона электронной почты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...