您是否可以创建新的Model实例而不将其保存到数据库中

ajo*_*jon 24 laravel laravel-5

我想在Laravel中创建一大堆模型对象实例,然后选择最佳实例并将其保存到数据库中.我知道我可以创建一个实例Model::create([]),但是可以保存到数据库中.如果可能的话,我想创建一堆模型,然后只创建一个最好的模型.

这可能吗?

我正在使用Laravel 5.0

Jos*_*ber 39

您只需通过实例化创建一个新模型:

$model = new Model;
Run Code Online (Sandbox Code Playgroud)

然后,您可以在以后将其保存到数据库:

$model->save();
Run Code Online (Sandbox Code Playgroud)

  • 当像这样实例化时,您可以使用初始属性值加载模型,就像使用`create()`:`$ model = new Model(['name'=>'foo',...]); (31认同)

Dan*_*Dan 10

是的,可能有不同的方式:您可以使用质量分配而无需保存。

请记住首先$fillable在您的模型中设置属性。

方式#1:使用方法填充

$model = new YourModel;

$model->fill([
    'field' => 'value',
    'another_field' => 'another_value'
]);

$model->save();
Run Code Online (Sandbox Code Playgroud)

方式#2:使用构造函数

$model = new YourModel([
    'field' => 'value',
    'another_field' => 'another_value'
]);

$model->save();
Run Code Online (Sandbox Code Playgroud)

Laravel 文档:https ://laravel.com/docs/5.7/eloquent


Kri*_*lay 7

您可以使用创建实例Model::make().它的工作方式与create它相同但不保存.

这是否是最佳实践完全是另一回事.

  • 我不确定这是否是一个好的实践,但我认为如果您必须从另一个服务的有效负载中实例化模型,并且您当前的应用程序不应该保留数据,那么这可能会派上用场。 (2认同)