阅读docs后,我尝试了第一个过滤器,但出现了此错误
过滤器“sanitize_for_image_url”中不存在 /var/www/html/src/CategoryBundle/Resources/views/Default/menu.html.twig 在第5行。
我做的是:
在该文件夹下创建文件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') }}">
我有没有想念别的东西?
答案 0 :(得分:2)
你没有告诉你新的过滤器。您还需要修改班级的getFilters()
方法。