我的数据库中有一个表,其中有3列日期类型,以Y-m-d格式存储。我需要在我的视图中显示的日期为d / m / Y.这个表的模型是JobCard.php,所以每次检索JobCard的实例时我都这样做:
$JobCard -> DateReqLatest = Carbon::createFromFormat('Y-m-d', $JobCard -> DateReqLatest)->format('d/m/Y');
$JobCard -> DateIssued = Carbon::createFromFormat('Y-m-d', $JobCard -> DateIssued)->format('d/m/Y');
$JobCard -> DateDespatch = Carbon::createFromFormat('Y-m-d', $JobCard -> DateDespatch)->format('d/m/Y');
然后我将$ JobCard传递给我。这有效,但有几个视图使用这个模型,这些视图使用不同的控制器,所以而不是将此代码复制到每个控制器函数,我希望在将JobCard实例传递给视图时自动转换日期格式。
用户还将以d / m / Y格式提交表格中的日期,我需要将其转换为Y-m-d以存储在我的数据库中。
最好编写我的代码来执行此操作?
答案 0 :(得分:2)
您可以创建一个访问者,每次访问此属性时都会调用该访问者:
public function getDateReqLatestAttribute($value)
{
return Carbon::createFromFormat('Y-m-d', $value)->format('d/m/Y');
}
答案 1 :(得分:1)
看看Laravel accessors,如果我理解的话,它可能就是你想要的。