【问题标题】:Date field must cast to 'date' in Eloquent model在 Eloquent 模型中,日期字段必须转换为“日期”
【发布时间】:2019-08-02 16:54:42
【问题描述】:

您好,我正在使用 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 模型中,日期字段必须转换为“日期”。

我需要在资源中做任何事情吗?

【问题讨论】:

    标签: laravel laravel-nova


    【解决方案1】:

    在您的模型类中,您只需添加以下几行,这些行向 laravel 描述您必须将日期字段转换为日期对象(碳):

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

    【讨论】:

    • 真的很抱歉我这样做了,但问题仍然存在:'(我需要添加碳吗?
    • :'( 仍然出现 :'(
    • 你也可以发布模型吗?你没有其他带日期的字段吗?
    • 非常感谢兄弟,我发现了一个缺失的部分并添加了它:)。我投票并选择了正确答案,如果您可以批准编辑,那将是很大的帮助:)
    • 没问题兄弟;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-20
    • 2016-09-05
    • 1970-01-01
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多