2015-09-27 37 views
3

我在我的预订模型中有一列存储datetime为reservation_datetime,但是在我的表单中,我将它分成了两个单独的字段(日期&时间html5输入)。在Laravel中使用mutator填充列

我创建了一个setter mutator来存储从两个输入派生的日期,但插入记录时没有任何内容保存到reservation_datetime列中。

这是我的突变

public function setReservationDatetimeAttribute($value) 
{ 
    return $this->attributes['reservation_datetime'] = $this->date . " " . $this->time; 
} 

我注意到,如果我把伪投入我的$fillable阵列(reservation_datetime已经存在),那么我能够增变设置为正确的值,但这会导致ORM试图保存datetime列的其他问题,这些列明显不存在,导致保存时出错。

+2

Mutators对此是错误的工具。在您的控制器中手动设置'reservation_datetime'。 –

+0

你能解释为什么这不是正确的功能使用?我的理解是,这正是增肌者习惯做的事情。 – Imran

+0

Mutators将被用于其他方式。如果你的表单有一个你想要分成两个的字段,或者简单地改变一个属性的值。将两个属性合并为一个并不是什么变体。 –

回答

2

Mutators对此是错误的工具。在您的控制器中手动设置reservation_datetime

Mutators是为了反过来使用。例如,如果你的表单有一个你想要分成两个的字段,或者简单地改变一个属性的值。

将两个属性组合成一个属性根本不是什么变体。