Поле даты должно быть приведено к дате в модели Eloquent - PullRequest
0 голосов
/ 12 марта 2019

Привет, я использую laravel nova для создания админ-панели. И я пытаюсь использовать Поле даты .

Это моя миграция,

$table->date('day')->nullable();

Это мой новый ресурс,

public function fields(Request $request)
    {
        return [
            ID::make()->sortable(),
            Date::make(__('Day'), 'day'),
        ];
    }

Это моя модель,

class Menu extends Model
{
    use HasTranslations;

    public $translatable = ['name','description'];

    protected $fillable = [
        'name','description','typology', 'cost', 'day', 'active', 'buffet'
    ];

Это моя ошибка,

Поле даты должно быть приведено к «дате» в модели Eloquent.

Нужно ли что-нибудь делать в ресурсе?

1 Ответ

4 голосов
/ 12 марта 2019

В вашем классе модели вам просто нужно добавить следующие строки, которые описывают в laravel, что вы должны преобразовать поле дня в объект даты (Carbon):

//Casts of the model dates
protected $casts = [
    'day' => 'date'
];

Проверьте здесь у кого-то такая же проблема.

РЕДАКТИРОВАТЬ:

Я видел, что для вашего столбца day установлено значение nullable Я думаю, что поле Nova должно быть таким, как в этом post :

public function fields(Request $request)
    {
        return [
            ID::make()->sortable(),
            Date::make(__('Day'), 'day')->nullable(),
        ];
    }

И нам нужно изменить модель следующим образом:

protected $casts = ['day' => 'date'];
...