2017-04-14 4 views
0

Ich weiß nicht, wie die Bearbeitungsfunktion meine select2 Form zu füllen. Hier ist mein Versuch, es zu tun. Controller:Laravel 5.4 select2 mehrere bearbeiten

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

hier ist meine Ansicht:

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

hier ist meine JS:

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

Antwort

1

, wenn Sie Ihre Kategoriedaten korrekt zu Ihrer Ansicht erhalten; Das scheint ein Array aus dem Code zu sein. Sie können foreach sie in Ihrem Element auswählen.

<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

leider, ich denke, ich habe die Daten nicht richtig in meinem Controller bekommen. Ist mein Controller in Ordnung? Was ist mit meinem Javascript? Ich bin wirklich neu in der Codierung. Vielen Dank. –

+0

das Array in den Namen half mir danke! name = "firma_main_cat []" –