2015-09-27 2 views
3

У меня есть колонка в моей модели бронирования, которая хранит дату в reservation_datetime, однако в моих формах я разделил это на два отдельных поля (дата & временных входов html5).Использование мутатора в Laravel для заполнения столбца

Я создал мульфильмер сеттера для хранения даты, полученной из двух входов, однако ничто не сохраняется в столбце reservation_datetime при вставке записи.

Это мой мутатор

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

Я заметил, что если я ставлю псевдо входы в мою $fillable массив (reservation_datetime уже присутствует), то я могу установить мутатор правильное значение, но это вызывает другие проблемы, когда ORM пытается сохранить столбцы date и time, которые, очевидно, не существуют, вызывая ошибку при сохранении.

+2

Мутаторы являются неправильным инструментом для этого. Установите 'reserve_datetime' вручную в свой контроллер. –

+0

Не могли бы вы объяснить, почему это неправильная функция? Я понимаю, что это именно то, что используется мутатором. – Imran

+0

Мутаторы должны использоваться по-другому. Если ваша форма имеет одно поле, которое вы хотите разделить на две части, или просто измените значение одного атрибута. Сочетание двух атрибутов в одном - это просто не то, что касается мутаторов. –

ответ

2

Мутаторы являются неправильным инструментом для этого. Установите reservation_datetime вручную в свой контроллер.

Мутаторы предназначены для использования наоборот. Например, если ваша форма имеет одно поле, которое вы хотите разделить на две части, или просто изменить значение одного атрибута.

Объединение двух атрибутов в один - это просто не то, что касается мутаторов.

Смежные вопросы