2013-09-23 3 views
0

Я пытаюсь установить переменные для шаблона электронной почты HTML, но я не могу получить доступ к переменным. Когда я повторяю имя переменной в шаблоне, в отправленном письме появляется сообщение об ошибке «неопределенная переменная». В описании ошибки даже отображаются переменные, которые были установлены.Невозможно получить доступ к переменным вида электронной почты CakePHP

App::uses('CakeEmail', 'Network/Email'); 
$Email = new CakeEmail(); 
$Email->from(array('[email protected]' => 'Test')); 
$Email->to('[email protected]'); 
$Email->subject('Test email variables'); 
$Email->template('layout_1'); 
$Email->emailFormat('html'); 
$Email->viewVars(array('input_1','test input 1')); 
$Email->send(); 

Приведенная ниже ошибка появляется в электронном письме, и я могу фактически увидеть переменную «input 1», которую я установил.

NOTICE (8): UNDEFINED VARIABLE: INPUT_1 [APP/VIEW/EMAILS/HTML/LAYOUT_1.CTP, LINE 44] 
CODE CONTEXT 

          <TR> 
           <TD CLASS="HEADER-BAR" VALIGN="TOP" STYLE="COLOR: #999; FONT-FAMILY: VERDANA; FONT-SIZE: 10PX; TEXT-TRANSFORM: UPPERCASE; PADDING: 0 20PX; HEIGHT: 15PX;" WIDTH="400" 
HEIGHT="15"> 
            <?PHP PRINT_R($INPUT_1); ?> 
$VIEWFILE = '/APPLICATIONS/XAMPP/XAMPPFILES/HTDOCS/APP/VIEW/EMAILS/HTML/LAYOUT_1.CTP' 
$DATAFORVIEW = ARRAY(
    'CONTENT' => '', 
    (INT) 0 => 'INPUT_1', 
    (INT) 1 => 'TEST INPUT 1' 
) 
$CONTENT = '' 
INCLUDE - APP/VIEW/EMAILS/HTML/LAYOUT_1.CTP, LINE 44 
VIEW::_EVALUATE() - CORE/CAKE/VIEW/VIEW.PHP, LINE 945 
VIEW::_RENDER() - CORE/CAKE/VIEW/VIEW.PHP, LINE 907 
VIEW::RENDER() - CORE/CAKE/VIEW/VIEW.PHP, LINE 471 
CAKEEMAIL::_RENDERTEMPLATES() - CORE/CAKE/NETWORK/EMAIL/CAKEEMAIL.PHP, LINE 1582 
CAKEEMAIL::_RENDER() - CORE/CAKE/NETWORK/EMAIL/CAKEEMAIL.PHP, LINE 1448 
CAKEEMAIL::SEND() - CORE/CAKE/NETWORK/EMAIL/ 
CAKEEMAIL.PHP, LINE 1073 
TEMPLATESCONTROLLER::SEND_NEWSLETTER() - APP/CONTROLLER/TEMPLATESCONTROLLER.PHP, LINE 110 
TEMPLATESCONTROLLER::EDIT() - APP/CONTROLLER/TEMPLATESCONTROLLER.PHP, LINE 194 
REFLECTIONMETHOD::INVOKEARGS() - [INTERNAL], LINE ?? 
CONTROLLER::INVOKEACTION() - CORE/CAKE/CONTROLLER/CONTROLLER.PHP, LINE 486 
DISPATCHER::_INVOKE() - CORE/CAKE/ROUTING/DISPATCHER.PHP, LINE 187 
DISPATCHER::DISPATCH() - CORE/CAKE/ROUTING/DISPATCHER.PHP, LINE 162 
[MAIN] - APP/WEBROOT/INDEX.PHP, LINE 111 

Я также попытался напечатать переменную $ dataforview, которая показывает, но я получаю ту же ошибку.

ответ

2

Я не использовал торты в возрасте, но быстро глядя на свои документы, они ожидают, что массив value => value передан методу viewVars().

Я предполагаю, что вы имели в виду сделать: $Email->viewVars(array('input_1' => 'test input 1'));

Во-вторых, это выглядит, как вы определяете значение как «INPUT_1», но при попытке доступа к нему как «INPUT_1». В PHP переменные чувствительны к регистру.

+0

Wow, nice catch! Это был долгий день ... – user1852176

+0

Мы все были здесь: P –

Смежные вопросы