CAKE PHP 3.6 setViewVars не передает переменные в шаблон электронной почты - PullRequest
0 голосов
/ 02 апреля 2019

В рамках торта php 3.6 я пытаюсь настроить шаблон электронной почты.

Проблема в том, что setViewVars не передает переменные в представление. Неопределенная переменная: имя вызывается при рендеринге представления всем ключам setViewVars.

$this->layout = '/email/html/default';
$enviar = 'Formulário de Franchising: ' . $name . '. Com o Email: ' . $email_add;
$emails = array('andre@dri.pt');
$email = new Email('default');
$email->from([$email_add => $email_add])
    ->template('default')
    ->emailFormat('html')
    ->setViewVars(['name'    => $name,
                   'email'   => $email_add,
                   'phone'   => $phone,
                   'company' => $company,
                   $emailcheck,
                   $smscheck,
                   'message' => $data['message']
    ])
    ->to($emails)
    ->subject('Subscrição Formulário.')
    ->send($enviar);
$this->Flash->success(__('Formulário Enviado. Obrigado!'));
return $this->render('/email/html/default');

Не могу разобраться в проблеме. Отладка всех переменных на стороне контроллера, они имеют правильные значения.

EDIT: В представлении я попытался повторить с $ this-> variable_name и получить отсутствующую ошибку помощника. Там написано, что помощник не найден.

1 Ответ

0 голосов
/ 02 апреля 2019

Вам не нужно использовать $this->variable_name, вы можете напрямую получить к ним доступ, используя variable_name на вашем взгляде

Согласно Cakephp Документация:

Вы можете установить переменные представленияс Email::setViewViars():

$email = new Email('templated');
$email->setViewVars(['value' => 12345]);

В ваших шаблонах электронной почты вы можете использовать их с:

<p>Here is your value: <b><?= $value ?></b></p>

Cakephp -> Электронная почта -> Отправка шаблонных писем

...