将此代码放在laravel中的哪个位置?

时间:2016-07-28 07:43:01

标签: laravel date laravel-5.2 php-carbon

我的数据库中有一个表,其中有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以存储在我的数据库中。

最好编写我的代码来执行此操作?

2 个答案:

答案 0 :(得分:2)

您可以创建一个访问者,每次访问此属性时都会调用该访问者:

public function getDateReqLatestAttribute($value)
{
    return Carbon::createFromFormat('Y-m-d', $value)->format('d/m/Y');
}

Documentation

答案 1 :(得分:1)

看看Laravel accessors,如果我理解的话,它可能就是你想要的。