2017-04-17 3 views
1

Ich habe eine Bearbeitungsseite, auf der die Daten eines Produkts übergeben werden, auf dieser Seite habe ich ein Auswahlfeld für die Kategorieänderung, in dem ich alle in meiner Datenbank registrierten Kategorien einfügen muss, aber nur die Kategorie zeigt Produkt der Seite.Wie füllen Sie die Auswahlbox mit der Datenbank in Laravel 5.4 aus?

Select Box von Edit-Ansicht

<select class="selectpicker" data-live-search="true"> 
      @foreach($produtos->categoria as $categoria) 
      <option data-tokens="{{$categoria->erp_name}}" value="{{$categoria->erp_categoryid}}">{{$categoria->erp_name}}</option> 
      @endforeach 
      </select> 

ProdutosController

public function edit($id) 
    { 
     $produtos = Produtos::find($id); 

     return view('functions.edit')->with('produtos', $produtos); 
    } 

Routen

Route::get('/product/update/{id}', '[email protected]')->name("product::updateGet"); 
Route::post('/product/update/{id}', '[email protected]')->name("product::updatePost"); 

Alle sugge Stände?

+0

Schnappen alle Kategorien, weisen sie auf eine andere Variable, und übergeben Sie das auch in. Dann benutze das stattdessen für die Auswahl. – aynber

+0

Rufen Sie mit '$ categories = Categoria :: all()' ab und übergeben Sie '-> mit ('categories', $ categories)' und verwenden Sie dann das in view. – siddiq

Antwort

2

Das Problem besteht darin, dass Sie die Kategorien dieses Produkts durchlaufen, nicht alle Kategorien. Hier ist eine Lösung:

public function edit($id) 
{ 
    $produtos = Produtos::find($id); 
    $categories = Category::all(); 

    return view('functions.edit', compact('produtos', 'categories')); 
} 

dann in der Ansicht:

<select class="selectpicker" data-live-search="true"> 
     @foreach($categories as $categoria) 
      <option data-tokens="{{$categoria->erp_name}}" value="{{$categoria->erp_categoryid}}">{{$categoria->erp_name}}</option> 
     @endforeach 
</select> 
Verwandte Themen