2017-04-14 8 views
0

私のselect2フォームの編集機能をどのように設定するのか分かりません。ここでそれをやってみる私の試みです。コントローラ:laravel 5.4 select2 multiple edit

public function edit($id) 
{ 
    $company = Company::find($id);  

    $categories = MainCategory::all(); 
    $categories2 = array(); 
     foreach ($categories as $category) { 
     $categories2[$category->main_cat_id] = $category->main_cat_name; 
    } 

    return view('company/edit_company')->with('company', $company)->with('categories', $categories2); 
} 

はここに私の見解です。ここ

<select class="form-control select2-multi" name="company_main_cat[]" multiple="multiple" style="width: 50%" data-placeholder="select main category"> 
<option value='{{$category->main_cat_id}}'>{{$category->main_cat_name}}</option> 
</select> 

は私のJSです:

<script type="text/javascript"> 
$('.select2-multi').select2(); 
$('.select2-multi').select2().val({!! json_encode($company->maincategories()->allRelatedIds()) !!}).trigger('change'); 
</script> 

答えて

1

あなたのビューに正しくお使いのカテゴリデータを取得する場合、これはコードの配列であるようです。あなたは選択要素の中にforeachを含めることができます。

<select class="form-control select2-multi" name="company_main_cat[]" multiple="multiple" style="width: 50%" data-placeholder="select main category"> 
    @foreach($category as $category_single) 
    <option value='{{$category_single->main_cat_id}}'>{{$category_single->main_cat_name}}</option> 
    @endforeach 
</select> 
+0

残念ながら、私はコントローラでデータを正しく取得していないと思います。私のコントローラは正常ですか?私のjavascriptはどうですか?私はコーディングで本当に新しいです。ありがとう。 –

+0

名前の中の配列は私に感謝しました!名前= "company_main_cat []" –