日期字段必须在Eloquent模型中强制转换为“日期”

问题描述 投票:0回答:1

嗨,我正在使用laravel nova创建一个管理面板。我正在尝试使用Date Field。

这是我的迁移,

$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模型中强制转换为“日期”。

我需要在资源方面做些什么吗?

laravel laravel-nova
1个回答
4
投票

在模型类中,您只需要添加以下行来描述laravel,您必须将day字段转换为日期对象(Carbon):

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

检查here有人有同样的问题。

编辑:

我已经看到你的day列设置为nullable我认为你的领域Nova应该喜欢在这个post

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

我们需要改变这样的模型,

protected $casts = ['day' => 'date'];
© www.soinside.com 2019 - 2024. All rights reserved.