阅读文档后,我尝试了第一个过滤器,但出现此错误
第 5 行的 /var/www/html/src/CategoryBundle/Resources/views/Default/menu.html.twig 中不存在过滤器“sanitize_for_image_url”。
我所做的是:
- 在我的 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') }}">
我错过了什么吗?