【发布时间】:2013-09-14 17:43:25
【问题描述】:
阅读docs后,我尝试了我的第一个过滤器,但得到了这个错误
过滤器“sanitize_for_image_url”不存在 /var/www/html/src/CategoryBundle/Resources/views/Default/menu.html.twig 在第 5 行。
我所做的是:
- 在我的 bundle 目录下创建一个文件夹并命名为 Twig。
-
在该文件夹下创建文件 CategoryExtension.php 并添加以下代码:
<?php namespace CategoryBundle\Twig; class CategoryExtension extends \Twig_Extension { public function getFilters() { return array( new \Twig_SimpleFilter('price', array($this, 'priceFilter')), ); } public function sanitize_for_image_urlFilter($image) { $image = strtolower($image); $image = preg_replace('/[^a-z0-9 -]+/', '', $image); $image = str_replace(' ', '-', $image); return $image; } public function getName() { return 'category_extension'; }}
-
在
\CategoryBundle\Resources内创建一个文件夹并命名为“config”,并在 config 下创建包含以下内容的文件“services.yml”:services: category.twig.category_extension: class: CategoryBundle\Twig\CategoryExtension tags: - { name: twig.extension } -
在我的树枝模板中调用过滤器如下:
<img src="{{ asset('bundles/dashboard/img/categories/' ~ entity.getName|lower|sanitize_for_image_url ~ '.gif') }}">
我是不是错过了什么?
【问题讨论】: