2014-03-30 23 views
1

我想創建一個下拉列表,其中按照類別劃分產品,所以我不能像通常那樣使用列表,因爲我必須在下拉列表中列出元素。我所做的:生成一個下拉列表分組列表laravel

$products= DB::table('prod')     
    ->join('cat','cat.id','=','prod.id_cat') 
    ->join('campo_cat','campo_cat.id_cat','=','cat.id') 
    ->join('campo','campo.id','=','campo_cat.id_campo') 
    ->join('cat_nome','cat_nome.id_cat','=','cat.id') 
    ->join('lingua','cat_nome.id_lingua','=','lingua.id') 
    ->where('lingua.lingua','=','it-IT')   
    ->groupBy('prod.nome') 
    ->select('prod.nome as nameprod','cat_nome.nome as namecat','prod.id as id')->get(); 

$category = []; 
foreach ($products as $product) 
{ 
    if (!isset($category[$product->namecat])) 
    { 
     $category[$product->namecat] = []; 
    } 
    array_push($category[$product->namecat], $product->nameprod);   
} 

然後我把它傳遞給我的看法:

{{ Form::select('category', array($categorie)) }} 

現在我可以看到一個下拉,我的產品名稱類別劃分,但我陣列的關鍵值不該ID,但它是標準0=> 1=>等。我希望我的下拉選擇的值對應於產品ID。我嘗試array_combine()與我的陣列的array_values() id的數組,但它給出了錯誤,因爲組的每個產品的類別的名稱具有null值,然後它返回我陣列到字符串轉換錯誤。

回答

1

只需將數組的新值添加到id的鍵值即可。

foreach ($products as $product) 
{ 
    if (!isset($category[$product->namecat])) 
    { 
     $category[$product->namecat] = []; 
    } 
    $category[$product->namecat][$product->id] = $product->nameprod; 
} 
+0

謝謝,我不知道array_push autogenerate key – user3384514