laravel雄辩:很多关系

时间:2017-07-22 10:16:54

标签: php database laravel eloquent

我想使用eloquent - > attach在我的db表pivot中添加一些项目,但我不明白为什么它不起作用:

我有2个模型(Salade =>(DB中的表'salades')和Ingredient =>(DB中的表'成分'), pivot表是ingredient_salade(3columns:id,ingredient_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 @商店

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é.");

}

表格: image of the tables 新的salade插入表salades但Pivot中的关系不是插入。为什么呢?

2 个答案:

答案 0 :(得分:0)

变化:

var a = [1,2,3,4,5];
sum = eval(a.join("+"));

到:

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

答案 1 :(得分:0)

用此代码替换您的关系代码并检查它:

成分等级:

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');
}

如果您有任何错误,请告诉我