Php Laravel如何将模型作为新模型保存到数据库中?

Php Laravel如何将模型作为新模型保存到数据库中?,php,laravel,laravel-5,observers,Php,Laravel,Laravel 5,Observers,由于单元测试,我们的类如下所示: class MyObserverClass { private $model; public function __construct(Model $model) { $this->model= $model; } public function saved(OtherModel $otherModel) { //Some condition while(

由于单元测试,我们的类如下所示:

class MyObserverClass
{

    private $model;

    public function __construct(Model $model)
    {
        $this->model= $model;
    }

    public function saved(OtherModel $otherModel)
    {
        //Some condition
        while(...) {
                //$this->model->exists = false;
                $this->model->property = "x-value";
                $this->model->sub_id   = $otherModel->id;
                //Other props...
                $this->model->state = model::STATE;
                $this->model->save();
        }
     }
但是当我运行这个时,同一个模型会被重写x次,并且只有最后一个模型会在数据库中


如何强制laravel将模型另存为数据库中的新模型?我尝试使用
exists
属性,但无法使其工作

您可以使用
newInstance
方法创建新的对象实例:

while(...) {
    $model = $this->model->newInstance();    
    $model->property = "x-value";
    $model->sub_id   = $otherModel->id;

    //Other props...
    $model->state = model::STATE;
    $model->save();
}

但是,如果在此循环中创建了许多相同或类似的对象,则可以使用
replicate
方法创建一个基本对象并仅更改一些属性。

可以使用
newInstance
方法创建新的对象实例:

while(...) {
    $model = $this->model->newInstance();    
    $model->property = "x-value";
    $model->sub_id   = $otherModel->id;

    //Other props...
    $model->state = model::STATE;
    $model->save();
}

但是,如果在此循环中创建了许多相同或类似的对象,则可以使用
replicate
方法创建一个基本对象并仅更改一些属性。

可以使用
newInstance
方法创建新的对象实例:

while(...) {
    $model = $this->model->newInstance();    
    $model->property = "x-value";
    $model->sub_id   = $otherModel->id;

    //Other props...
    $model->state = model::STATE;
    $model->save();
}

但是,如果在此循环中创建了许多相同或类似的对象,则可以使用
replicate
方法创建一个基本对象并仅更改一些属性。

可以使用
newInstance
方法创建新的对象实例:

while(...) {
    $model = $this->model->newInstance();    
    $model->property = "x-value";
    $model->sub_id   = $otherModel->id;

    //Other props...
    $model->state = model::STATE;
    $model->save();
}
但是,如果您在此循环中创建了许多相同或类似的对象,则可以使用
replicate
方法创建一个基本对象,并仅更改一些属性。

尝试此方法

while(...) {
 $model = new self;
 $model -> name = $name;
 ....
 $model -> save();
}
或者,您可以传递一个数组来插入以创建方法

// Create a new user in the database...
$user = Model::create(['name' => 'John']);
试试这个

while(...) {
 $model = new self;
 $model -> name = $name;
 ....
 $model -> save();
}
或者,您可以传递一个数组来插入以创建方法

// Create a new user in the database...
$user = Model::create(['name' => 'John']);
试试这个

while(...) {
 $model = new self;
 $model -> name = $name;
 ....
 $model -> save();
}
或者,您可以传递一个数组来插入以创建方法

// Create a new user in the database...
$user = Model::create(['name' => 'John']);
试试这个

while(...) {
 $model = new self;
 $model -> name = $name;
 ....
 $model -> save();
}
或者,您可以传递一个数组来插入以创建方法

// Create a new user in the database...
$user = Model::create(['name' => 'John']);

在这种情况下,当我使用单元测试时,我通过的模拟模型将被覆盖?在这种情况下,当我使用单元测试时,我通过的模拟模型将被覆盖?在这种情况下,当我使用单元测试时,我通过的模拟模型将被覆盖?在这种情况下,当我使用单元测试时,我通过的模拟模型将被覆盖?