2012-05-29 55 views
1

我使用CI2与Doctrine2和树枝为模板引擎。我试图显示从一个实体的日期作为一个字符串,但它不适合我。树枝日期过滤器不适用于DateTime对象

我发送实体对象的数组到模板,通过它们进行迭代,并显示它们的性质:

{% for e in entities %} 
    <span><label>username</label>{{e.getUserName}}</span> 
    <span><label>email</label>{{e.getEmail}}</span> 
    <span><label>date created</label>{{e.getCreatedAt | date('d.M.Y H:i:s')}}</span> 
{% endfor %} 

getCreatedAt()方法返回一个DateTime对象。我可以使用这个对象从PHP内就好了:

echo $e->getCreatedAt->format('YmdHis'); 
从内部枝条

但是我似乎无法找到任何方式来获得打印的字符串。当我尝试上述方式(这是我读过的是正确的方式做到这一点),我得到:

date() expects parameter 1 to be string, object given 

我试过其他几种方法:

{{e.getCreatedAt.format('d.M.Y H:i:s')}} 
{{e.getCreatedAt}} 
{{e.getCreatedAt | date('d.M.Y H:i:s') |strtotime}} 

没有什么工作了。

我是一定要加用addFilter()方法方法“日期”枝杈过滤器:

$this->twig->addFilter('date', Twig_Filter_Function('date')); 

任何想法是怎么回事?

回答

2

date是一个内置的过滤器,你不需要注册它,特别是不需要php date函数,它不能处理DateTime对象。

+0

奇怪的是,我在注册日期过滤器之前尝试了好几次,并且没有运气。现在,我已经删除了过滤器,它正在工作。我会把它记下来,因为缺乏睡眠:)谢谢, –

相关问题