2017-04-17 96 views
1

我有一个编辑页面,其中传递产品的数据,在这个页面上,我有一个选择框用于类别更改,其中我需要插入在我的数据库中注册的所有类别,但只显示与该类别相关的类别页面的产品。在Laravel 5.4中如何使用数据库填充选择框?

编辑视图的选择框

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

路线

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

任何sugge stions?

+0

抓住所有的类别,将其分配给另一个变量,并通过在为好。然后用它来代替。 – aynber

+0

使用'$ categories = Categoria :: all()'获取并且通过' - >与('categories',$ categories)'然后在视图中使用它。 – siddiq

回答

2

问题是,您正在循环该产品的类别,而不是所有类别。这里是一个解决方案:

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

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

然后在您的视图:

<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> 
相关问题