[英]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.