Неожиданные данные, найденные во время сэкономить на красноречественстве / Laravel

StackOverflow https://stackoverflow.com//questions/23042630

Вопрос

У меня есть еще одно поле в базе данных по сравнению с created_at и updated_at в виде TIMESTAMP Имя поля - дата.

Поэтому я перезаписал метод getDates() на мою модель красноречиво, потому что я хотел, чтобы поле было создано из углерода.

public function getDates()
{
   return ['date','created_at','updated_at'];
}
.

Но когда я пойду, чтобы создать новую запись в базе данных, она бросает мне исключение:

InvalidArgumentException Неожиданные данные найдены.Неожиданные данные найдены. Неожиданные данные найдены.

PS: значение, отправленное из формы в формате ЕС: d-m-Y h:i

Я не знаю, как выяснить эту проблему, любые предложения ценятся

Это было полезно?

Решение

Вас Array, возвращенный из GetDates, был объединен с Dafault, что приведет к:

['created_at','updated_at','deleted_at','date','created_at','updated_at'];
.

Так что используйте только «дату» и должны быть в порядке.


Попробуйте настроить мутатор для «даты» для преобразования данных из ввода в формат Timestamp. Ошибка, которую вы получаете, не красноречивая, а углерод.

public function setDateAttribute($value)
{
    $this->attributes['date'] = Carbon\Carbon::createFromFormat('d-m-Y h:i', $value);
}
.

Также есть ошибка в документах, так как GetDates определяет доступ к датам, а не мутаторам.

Другие советы

Попробуйте:

Carbon::createFromFormat('d.m.Y H:i', $request->publishdate);    
.

Вы не можете использовать свой формат "d-m-y h: i"

Вы должны использовать один из тех: Timestamp Unix, String Date String (Y-M-D), строка даты, экземпляр DateIme / экземпляр углерода

https://laravel.com/docs/4.2/eloquent#accessors-и мутаторы

Несмотря на то, что его лет, и я помещаю свой вклад для всех, кто все еще борется даже после установки мутатора.

Если элемент дата ввода HTML проходит дата в формате атома (1975-12-25т. 14: 15: 16-05: 00), то мутатор даты не поможет.Вам необходимо применить следующее исправление в освещенной \ базе данных \ Eloquent \ Model Class на линии # 2848, чтобы получить его работу (в Laravel # 5).

$value = Carbon::createFromFormat($format, (new DateTime($value))->format('Y-m-d H:i:s'));
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top