Laravel 6 : 多态关系保存的重复数据库条目

Laravel 6 : Duplicate database entry on polymorphisme relation save

我尝试在我的数据库中保存变形关系,但是当我尝试保存它时,我在每个 table 中都有两个条目用于关系。

这是我的客户class

class Client extends Model
{
    protected $guarded = [];

    public function clientelle(){
        return $this->morphTo();
    }

}

我的朋友class

class Particulier extends Model
{
    protected $guarded = [];

    public function client(){
        return $this->morphOne(Client::class,'clientelle');
    }
}

所以当我尝试那样保存时:

$particulier = new Particulier();
$particulier->nom = $request->nom;
$particulier->prenom = $request->prenom;
$particulier->save();

$particulier->client()->create(['telephone'=>$request->telephone,'adresse'=>$request->adresse,'email'=>$request->email]);

我的数据库保存了两条相同的记录。这是我的问题。

所以我尝试了不同的方法来避免它,但我每次都出错

提前致谢

所以我终于找到了一个最糟糕的解决方案...

在你的控制器中添加 int var 并将其初始化为 0 :

Private $checkDouble=0;

在你想要保存关系的地方创建 if 块并像这样保存所有模型:

if($this->checkDouble==0) {
   $this->checkDouble = $this->checkDouble + 1; //Increase your var value 

   $particulier = Particulier::create(['nom' => $request->nom, 'prenom' => $request->prenom]);
   $particulier->client()->create(['telephone' => $request->telephone, 'adresse' => $request->adresse, 'email' => $request->email]);
}

不再有重复数据

我知道这是最糟糕的解决方案,但我没有看到任何最佳解决方案^^