Поле даты должно приводить к ‘date’ в модели Eloquent

#laravel #laravel-nova

#laravel #laravel-nova

Вопрос:

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

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

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

Это мой ресурс my nova,

 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'
    ];
  

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

Поле даты должно приводить к ‘date’ в модели Eloquent.

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

Ответ №1:

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

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

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

Редактировать:

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

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

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

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

Комментарии:

1. действительно жаль, что я это сделал, но все еще возникает проблема:'( и нужно ли мне добавлять углерод?

2. :'( все еще появляется:'(

3. можете ли вы также опубликовать модель? у вас нет других полей с датой?

4. Большое спасибо, братан, я нашел небольшую недостающую часть и добавил ее :). Я проголосовал и выбрал правильный ответ, было бы здорово, если бы вы могли одобрить редактирование 🙂

5. Нет проблем, братан 😉