在Twig中没有Symfony的资产功能

时间:2016-07-07 12:36:56

标签: php templates web twig

我想将资产功能用于我只使用Twig的项目中。 我试着用它,但php给我这个:

  

致命错误:未捕获的异常'Twig_Error_Syntax',消息'未知'资产“函数在”./Default/base.html.twig“

2 个答案:

答案 0 :(得分:11)

解决方案在sensiolabs.org

我在conf.php中添加了这个:

//config/config.php
require_once('../vendor/autoload.php');

//twig
Twig_Autoloader::register();
$loader = new Twig_Loader_Filesystem('../app/views');
$twig = new Twig_Environment($loader);
$twig->addFunction(new \Twig_SimpleFunction('asset', function ($asset) {
    // implement whatever logic you need to determine the asset path

    return sprintf('../assets/%s', ltrim($asset, '/'));
}));

答案 1 :(得分:1)

那是因为Assetic本身就是一个独立的PHP库。
因此,要在twig中使用asset,你需要安装捆绑包。

运行以下composer命令安装资产包

composer require symfony/assetic-bundle

如果不安装独立包,twig就无法找到资产功能。