正在生成一个下拉列表 分组列表 laravel


Generating A drop down Grouped List 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值,然后它向我返回数组到字符串转换错误。

只需将数组的新值添加到 id 的键值即可。

foreach ($products as $product) 
{
    if (!isset($category[$product->namecat])) 
    {
        $category[$product->namecat] = [];
    }
    $category[$product->namecat][$product->id] = $product->nameprod;
}
相关文章: