尝试加载我正在处理的树枝过滤器时出错

时间:2013-09-14 17:43:25

标签: symfony twig

阅读docs后,我尝试了第一个过滤器,但出现了此错误

  

过滤器“sanitize_for_image_url”中不存在   /var/www/html/src/CategoryBundle/Resources/views/Default/menu.html.twig   在第5行。

我做的是:

  • 在我的捆绑目录下创建一个文件夹,并将其命名为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') }}">
    

我有没有想念别的东西?

1 个答案:

答案 0 :(得分:2)

你没有告诉你新的过滤器。您还需要修改班级的getFilters()方法。