2012-05-29 106 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

奇怪的是,我在註冊日期過濾器之前嘗試了好幾次,並且沒有運氣。現在,我已經刪除了過濾器,它正在工作。我會把它記下來,因爲缺乏睡眠:)謝謝, –

相關問題