在Laravel中使用mutator来填充列

时间:2015-09-27 15:49:17

标签: php laravel

我的预订模型中有一列将日期时间存储为reservation_datetime,但在我的表单中,我将其拆分为两个单独的字段(日期和时间html5输入)。

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

这是我的改变者

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

我注意到如果我将伪输入放入我的$fillable数组(reservation_datetime已经存在),那么我可以将mutator设置为正确的值,但这会导致其他问题ORM正在尝试保存datetime列,这些列显然不存在会导致保存错误。

1 个答案:

答案 0 :(得分:2)

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

突变体意味着反过来使用。例如,如果您的表单有一个要分割成两个字段的字段,或者只是改变单个属性的值。

将两个属性合二为一,根本不是变异人的意思。