我想通过TwigBridge使用Laravel的Twig-extensions包中的截断过滤器,但是我一直看到此错误:
The filter "truncate" does not exist in "[template file]" at line [##].
我尝试将扩展名以几种不同的方式添加到laravel / app / config / packages / rcrowe / twigbridge / config.php扩展名数组中,但没有任何效果.
'Twig_Extensions_Extension_Text',
和
function () {
return new Twig_Extensions_Extension_Text();
},
Composer正确安装了文件,我能够使用相同的自动加载器从测试文件加载它.
要使TwigBridge加载此扩展程序需要哪些配置设置?
解决方法:
好吧,我有点笨,但是让我们充分利用它.这是如何在Laravel中为TwigBridge启用其他Twig扩展的过度明确的演练.
TL; DR:扩展是在extensions.php中配置的,而不是在config.php中配置的.
作曲家
从这里开始.使用Composer的require CLI命令; composer需要树枝/扩展名或将以下行添加到您的composer.json文件.
"twig/extensions": "1.2.*@dev",
如果您修改composer.json,请确保运行composer update,以便安装该软件包.
配置TwigBridge
要将Twig扩展添加到TwigBridge,必须将它们添加到laravel / app / config / packages / rcrowe / twigbridge / extensions.php中的已启用阵列中.不是config.php.即使config.php中可能有一个扩展数组,也就是在其中配置其他所有内容的地方,但不是在启用扩展的地方.这在TwigBridge的文档中有详细说明,但很容易忽略.我好几次想念它.
'enabled' => [
'TwigBridge\Extension\Loader\Facades',
'TwigBridge\Extension\Loader\Filters',
// ...
'Twig_Extensions_Extension_Text', //
],
TwigBridge的文档引用了config.php文件,但不久前该配置文件似乎已重命名为twig.php.使用工匠config生成新配置:发布rcrowe / twigbridge会生成twig.php和extensions.php文件-没有config.php.我已经使用TwigBridge一段时间了,所以我仍然躺在那里,可能会增加我的困惑.
扩展名
每个扩展名都可以在扩展文件中找到-它们只是Train_Case类名.截至2015年1月,Twig-extensions project包含五个扩展名,此处列出了这些扩展名及其附带的过滤器:
>数组-Twig_Extensions_Extension_Array
筛选器:随机播放
>日期-Twig_Extensions_Extension_Date
过滤器:time_diff
> I18n-Twig_Extensions_Extension_I18n
过滤器:反式
>国际-Twig_Extensions_Extension_Intl
过滤器:localizeddate,localizednumber,localizedcurrency
>文字-Twig_Extensions_Extension_Text
过滤器:截断,自动换行
标签:laravel,twig,php
来源: https://codeday.me/bug/20191028/1954723.html