Laravel 7 中无法从数组创建对象

我正在尝试创建一个新的模型对象:


$ts = Carbon::create(2020, 04, 16, 13, 00, 0, null);

$m1 = new Measure(['time' => $ts]);

dd($m1);

但是当我检查结果为$m1->time空时


这是我的模型配置:


class Measure extends Model

{

    protected $table = 'measures';

    protected $casts = [

        'time' => 'datetime'

    ];

    public $timestamps = [

        "time"

    ];


    public $guarded = [

        'id'

    ];

}

如果我做:


$m1 = new Measure();

$m1->time = $ts;

我将能够看到$m1->time价值


为什么会这样?


杨魅力
浏览 112回答 1
1回答

慕尼黑5688855

time需要在数组中指定字段$fillables,以便可以批量分配(在创建新模型时从数组)。因此在模型中,可填充数组需要像这样定义:class Measure extends Model{    protected $table = 'measures';    protected $casts = [        'time' => 'datetime'    ];    public $timestamps = [        "time"    ];    public $guarded = [        'id'    ];        //**** fillables array *****//    protected $fillable = ['time'];}
打开App,查看更多内容
随时随地看视频慕课网APP