0

有没有办法创建一个只能用于特定功能但不能用于其他功能的 Twig 过滤器?

例如,假设我有自定义函数 collection() 并且当我对其应用“排序”过滤器时,它将使用该扩展类中的过滤器函数“排序”而不是默认的树枝“排序”过滤器?

4

1 回答 1

0

这不可能根据输入类型使用内置过滤器或自定义过滤器。

我的建议是创建一个自定义my_sort过滤器,该过滤器将根据您的需要具有不同的行为。

  • 如果你的变量是Colleciton的一个实例,那么你使用一个sort()方法
  • 否则,您将复制默认sort过滤器的行为。

就像是:

public function getFilters()
{
    return array(
            'my_sort' => new \Twig_Filter_Method($this, 'my_sort'),
    );
}

public function my_sort($stuff)
{
    if (is_array($stuff))
    {
        sort($stuff);
    }
    else if ((is_object($stuff)) && ($stuff instanceof Collection))
    {
        $stuff->sort();
    }
}
于 2013-05-08T15:44:44.710 回答