2014-09-16 5 views
1

Я пытаюсь преобразовать ввод даты в правильный формат mysql. Поле start_date отформатировано MM dd, yyyy.Laravel - конвертировать формат даты ввода перед сохранением

В моей функции хранения контроллера я захватываю всех пользователей, включая start_date и сохраняя.

$userProfileData->save(); 

То, что я думал, что смогу сделать, - это Carbon, чтобы преобразовать start_date, прежде чем сохранить это.

$userProfileData->start_date->toDateString(); 

Я получаю вызов функции-члена toDateString() при ошибке, отличной от объекта.

+0

Я смог понять это. $ start_date = date ('Y-m-d', strtotime ($ userProfileData-> start_date)); – snorth

ответ

5

Мне удалось преобразовать формат даты, добавив это в функцию магазина пользователей.

0

вы получите сообщение об ошибке, не объект, потому что start_date не является объектом с помощью метода toDateString()

, что вы можете сделать, это использовать setStartDateAttribute() метод в вашей модели, которая будет вызываться каждый раз, чтобы получить значение атрибута Дата_начала и в этом методе вы можете изменить значение, так модель будет использовать обновленное значение для работы, как изменить или обновить это может быть как следовать

public function setStartDateAttribute($value) { 
     $this->attributes['start_date'] = date('Y-m-d', strtotime($value)); 
} 

следующий метод будет использоваться для вашей модели, когда необходимо получить значение датой_начало атрибут этот метод должен быть записан в модели

+0

Я добавил это к моей модели пользователей, но не преобразовал start_date. Мне нужно как-то вызвать его в моей памяти? – snorth