Laravel-Model :: create和save()之间的区别

时间:2019-08-17 01:06:04

标签: laravel

我遇到了两种不同的将记录插入数据库的方法,第一种是:

Model::create([
            'field1' => $request['field1'],
            'field2' => $request['field2']
        ]);

第二种方式:

$model = new Model;
$model->field1 = $request['field1'];
$model->field2 = $request['field2'];
$model->save();   

两者之间有什么区别?他们是一样的吗?我什么时候应该在另一个上使用?

2 个答案:

答案 0 :(得分:3)

两者都做同样的事情。请参阅the create method code,您将了解。这只是简写。

有时候我不使用create方法,例如当我需要在某些条件下设置不同的值时。

答案 1 :(得分:2)

我知道这已经得到回答。我注意到两者的主要区别是这些。

两者都做同样的事情。它“保存”数据。但是创建要求您的模型中有$fillable。如果没有定义可填写的字段,则创建将无法进行。数据将不会传递。

但是,另一方面,“保存”并不“要求”填写,而是可以将数据存储到表中。

希望其他人对此有所帮助。快乐编码:)