2014-04-07 62 views
0

是否可以將多個數據保存到多對多數據庫中?Laravel - 將數據保存爲多對多關係

我的代碼:

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/> 

現在我需要以某種方式通過對每個ID「量」和「單元」到控制器並進入樞軸。現在,它只保存ID。

我該怎麼辦?

回答

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文檔的詳細信息。

3

您必須使用attach函數。

$list->ingredients()->attach($ingredients->id,['unit' => $unit, 'amount' => $amount]);