簡體   English   中英

laravel雄辯:多對多關系

[英]laravel eloquent: many to many relations

我想使用雄辯的-> attach在我的數據庫表透視圖中添加一些項目,但是我不明白為什么它不起作用:

我有2個模型(Salade =>(DB中的表'salades')和Ingredient ==((DB中的表'ingredients')),數據透視表是Ingredient_salade(3列:id,grate_id,salade_id)。

我的模特:

class Ingredient extends Model
{
protected $table = 'ingredients';

protected $fillable = ['nom'];

public function Salades()
{
    return $this->belongsToMany('App\Salade');
} 
}


class Salade extends Model
{
protected $table = 'salades';

protected $fillable = ['nom','prix'];

public function ingredients()
{
    return $this->belongsToMany('App\Ingredient');
}
}

SaladeController @ Store

public function store(Request $request)
{

    $this->validate($request, [
                        'nom' => 'required',
                            'prix' => 'required' ]);


$salade = $request->only(['nom', 'prix']);

// insert new salade in DB
$lanouvelleSalade = \App\Salade::create($salade);

//insert relation in pivot table
$lanouvelleSalade->ingredients()->attach([21,22,23]);

    return redirect('salade')->withOk("Le Salade " . $request->input('name') . " a été modifié.");

}

表格:新色拉的表格圖像已插入到色拉中,但樞軸中的關系未插入。 為什么?

更改:

$lanouvelleSalade->ingredients()->attach([21,22,23]);

至:

$lanouvelleSalade->ingredients()->sync([21,22,23]);

將此代碼替換為您的關系代碼並進行檢查:

成分等級:

public function Salades()
{
    return $this->belongsToMany('App\Salade','ingredient_salade','ingredient_id','salade_id');
}

Salade類別:

public function ingredients()
{
    return $this->belongsToMany('App\Ingredient','ingredient_salade','salade_id','ingredient_id');
}

讓我知道你是否有任何錯誤

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM