Использование Helper в представлении, сгенерированном консолью/оболочкой в ​​CakePHP

Я хочу использовать пользовательский и основной Html-Helper CakePHP 2.x в представлении электронной почты, сгенерированном через консоль CakePHP. Я использую CakeEmail обычным способом, но не могу понять, как включить помощников.

Как использовать/добавлять/включать хелперы в представление, сгенерированное через консоль CakePHP?

Добавление public $helpers = array('Html'); в оболочку не работает.


person lorem monkey    schedule 26.09.2012    source источник
comment
Пояснение: похоже, я неверно истолковал ошибки: в представлении не было помощников, в нем отсутствовал базовый URL. Если вы оказались в ситуации, когда вы думаете, что Html-Helper не работает, потому что полный URL-адрес не возвращается, см. здесь: stackoverflow.com/questions/11109785/   -  person lorem monkey    schedule 26.09.2012


Ответы (3)


это задокументировано здесь: http://book.cakephp.org/2.0/en/core-utility-libraries/email.html#sending-templated-emails

$email->helpers(array('Html', 'Custom', 'Text'));
person mark    schedule 26.09.2012

Для CakePHP 1.3 я сделал это немного грязно, но это работает

App::import("Core", "Controller");
App::import("Controller", "App");

class SomeShell extends Shell { 

  function startup() { 
    $this->Controller =& new AppController();

    ...
  }
}

и AppController использует помощников, которые мне нужны в моем шаблоне электронной почты. Как вы думаете?

person krzysu    schedule 21.11.2012

Это должно работать в оболочке (но только в cakePHP ниже 2.x):

App::import('Core', 'Helper');

$html = new HtmlHelper();
person Grzegorz Motyl    schedule 26.09.2012
comment
вам также нужно передать объект View - person mark; 26.09.2012