我在Laravel 4.x论坛上问了这个问题,试图在没有运气的情况下在Google上找到答案。
我正在使用Eloquent加载一堆具有created_at
属性的用户对象。默认的MySQL时间戳不是很易读,所以我认为将readableDate()
方法添加到我的用户模型会很简洁,它会将值输出为“1分钟前”,“2天前”。 / p>
当我在我的刀片模板中调用方法时:$user->readableDate()
我得到了所需的输出,但我的整个布局都被破坏了。
是否,或者是否可以从模板中调用模型方法?
答案 0 :(得分:3)
如果您使用的是Laravel的Eloquent模型,则无需添加自定义方法来处理日期。默认情况下,created_at
和updated_at
等日期字段将作为Carbon objects处理,您可以使用人类可读的格式显示日期:
{{ $user->created_at->diffForHumans() }}
您可以使用getDates()
方法为您的Eloquent模型添加其他date fields。
答案 1 :(得分:2)
是的,刀片编译为PHP。 :)
你必须:
将您的用户传递给您的观点:
return View::make('showUser')->with('user', $user);
然后使用它:
<hml><body>
Last update: {{ $user->readableDate() }}
</body></hml>
答案 2 :(得分:0)
我可以假设您将其包裹在刀片代码{{code here}}中,或者您是否错过了该部分?
此外,应使用如下静态方法调用模型:
{{ User::readableDate() }}
答案 3 :(得分:0)