是否可以将多于id的数据保存到多对多的数据透视表中?
我的代码:
public function lists() {
return $this->belongsToMany('ShoppingList','shopping_list_ingredients','shopping_list_id','ingredients_id')
->withPivot(array('unit','amount'))
->withTimestamps();
}
和副verca!
现在,我需要将其他数据添加到数据透视表中。
这是我的保存代码:
$list = new ShoppingList;
$list->user_id = Auth::user()->id;
$list->title = Input::get('recipe_title');
$list->save();
$list->ingredients()->sync(Input::get('ingredient'));
$list->push();
和我的观看代码:
- {{$i->amount}} {{$i->unit}} {{$i->name}} - {{ Form::checkbox('ingredient[]', $i->id) }}<br/>
现在我需要以某种方式传递&#34;金额&#34;和&#34;单位&#34;将每个ID放入控制器并进入枢轴。现在,它只保存ID。
我该怎么做?
答案 0 :(得分:3)
您必须使用附加功能。
$list->ingredients()->attach($ingredients->id,['unit' => $unit, 'amount' => $amount]);
答案 1 :(得分:0)
您可以尝试这样的事情:
$ingredientId = Input::get('ingredient');
$amount = 'some amount';
$unit = 'some unit';
$pivotData = array($ingredientId => array('amount' => $amount, 'unit' => $unit));
$list->ingredients()->sync($pivotData);
您也可以使用attach
方法,阅读Laravel Website上的文档以获取更多信息。