我用自定义函数创建了一个扩展 .
class AppExtension extends \Twig_Extension
{
private $_container;
public function __construct($container)
{
$this->_container = $container;
}
public function getFunctions()
{
return [
new \Twig_SimpleFunction('autologin', [$this, 'autologin'], ['is_safe' => ['all']])
];
}
public function autologin($customer, $url)
{
return sprintf('');
}
public function getName()
{
return 'xxx_app_extension';
}
}
我已将它添加到services.yml:
xxx_opportunity.twig.helper:
class: 'OpportunityBundle\Twig\AppExtension'
public: false
arguments:
- '@service_container'
tags:
- { name: twig.extension }
当我看到ORO通过“php bin / console debug:twig”找到它时,我可以看到我的自定义功能出现在列表中 . 当我尝试使用OROcrm中的电子邮件模板编辑器在电子邮件模板中实现它时,我收到以下错误:
The template for xxxx has syntax error: Unknown "autologin" function at line 18.
这已经让我的头脑太久了,任何人都有解决方案?
更新:
$instance = new \Oro\Bundle\EmailBundle\Provider\EmailRenderer(${($_ = isset($this->services['oro_email
$instance->addExtension(${($_ = isset($this->services['oro_ui.twig.html_tag']) ? $this->services['oro_u
$instance->addExtension(${($_ = isset($this->services['oro_config.twig.config_extension']) ? $this->ser
$instance->addExtension(${($_ = isset($this->services['oro_ui.twig.extension.formatter']) ? $this->serv
$instance->addExtension(${($_ = isset($this->services['oro_locale.twig.address']) ? $this->services['or
$instance->addExtension(${($_ = isset($this->services['oro_locale.twig.date_time']) ? $this->services['
$instance->addExtension(${($_ = isset($this->services['oro_entity.twig.extension.entity']) ? $this->ser
$instance->addExtension(${($_ = isset($this->services['twig.extension.intl']) ? $this->services['twig.e
$instance->addExtension(${($_ = isset($this->services['oro_locale.twig.date_time_organization']) ? $thi
$instance->addExtension(${($_ = isset($this->services['oro_calendar.twig.dateformat']) ? $this->service
$instance->addExtension(${($_ = isset($this->services['oro_calendar.twig.recurrence']) ? $this->service
$instance->addExtension(${($_ = isset($this->services['oro_currency.twig.currency']) ? $this->services[
$instance->addExtension(${($_ = isset($this->services['twig.extension.routing']) ? $this->services['twi
这是编译器最终得到的getOroEmail_EmailRendererService.php,它缺少我的扩展,你可以看到 . 我怎样才能解决这个问题?