2016-08-01 106 views
0

我在Laravel框架中遇到了問題。Laravel創建創建方法將只添加一條記錄

我店的方法是這樣的:

public function store(ProfileUpdateRequest $request, $id) { 
    $organizations = Input::only('organization'); 

    foreach($organizations as $id) { 
     $data = array(
      'organization_id' => $id, 
      'user_id' => Auth::user()->id 
     ); 

     Organization_User::create($data); 
    } 
} 

和HTML是這樣的:

<select class="select-icons" tabindex="-1" name="organization"></select>

我使用的是選擇2 4 *獲得的組織的記錄領域。

$('.select-icons').select2({ 
    multiple: true, 
    minimumResultsForSearch: "-1", 
    ajax: { 
     url: '/api/v1/allorganizations', 
     dataType: "json", 
     type: "GET", 
     data: function (params) { 

      var queryParameters = { 
       term: params.term 
      } 
      return queryParameters; 
     }, 
     processResults: function (data) { 
      return { 
       results: $.map(data, function (organization) { 
        return { 
         text: organization.name, 
         id: organization.id 
        } 
       }) 
      }; 
     } 
    }, 
    formatResult: iconFormat, 
    minimumResultsForSearch: "-1", 
    width: '100%', 
    formatSelection: iconFormat, 
    escapeMarkup: function(m) { return m; } 
}); 

事情是,無論我添加多少記錄,它只會添加一條記錄(我首先選擇的那一條)。我應該怎麼做,自昨晚以來一直在掙扎。 :d

+0

在您的 Ohgodwhy

+0

當我這樣做後,我得到一個錯誤:類型錯誤:參數1傳遞給Illuminate \ Database \ Grammar :: parameterize()必須是類型數組,給定的整數,調用 – Ventilaator

回答

0

這裏有點重構,使這個多一點「Laravely」

collect($request->only('organization'))->each(function($id, $index) { 
    Organization_User::create([ 
     'organization_id' => $id, 
     'user_id' => auth()->user()->id 
    ]); 
}); 

通過這種方式,你可以遍歷從請求的結果。然後我們將實例化來自我們的$request->only('organization')的集合,這將允許我們鏈接->each()方法,返回組織的$id,並且它在陣列中的位置由$index表示。

我們使用auth()如在Auth::發生了改變,到別的在未來的東西,至少我們可以希望auth()助手不活動反對Auth::

+0

我修改了一下代碼,它是'Organization_User'模型,而不是'Organization',而列是'organization_id',而不是'organization'但可悲的是,這也不起作用。現在我收到錯誤'調用成員函數each()array# – Ventilaator

+0

@Ventilaator看看上面的編輯。應該爲你更好地工作。 – Ohgodwhy