如题,已经在模型中定义了属性转换如下:
protected $casts = [
'start_time' => 'datetime:Y-m-d',
'end_time' => 'datetime:Y-m-d',
];
但是在 blade 中调用时无效:
{{ $user->start_time }}
最终显示:
其实这是 laravel 的设计机制,属性转换只有在模型被序列化为数组或者json格式时才生效。
我们可以通过访问器来解决这个问题,在模型中定义如下代码:
public function getStartTimeFormattedAttribute(){
return $this->start_time->format('Y-m-d');
}
然后在 blade 中调用:
{{ $user->start_time_formatted }}
其实,我们也可以直接在 blade 中链式调用 carbon 的方法的,不需要在模型中定义访问器,而是直接使用下面的方式:
{{ $user->start_time->format('Y-m-d') }}
想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » Laravel属性转换$casts无效/不生效的原因及解决办法
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » Laravel属性转换$casts无效/不生效的原因及解决办法