1

我正在尝试在 Laravel 中创建一个带有选择框的表单。

看法

{{ Form::select('cmp_type', $cmp_types, null, $attributes = ['class' => 'form-control']) }}

控制器

public function showAddCompany()
{
    $cmp_types = cmpTypes::where('status', true)->pluck('type');

    return view('addCompany', compact('cmp_types'));
}

这正在生成一个选择框。

<select class="form-control" id="cmp_type" name="cmp_type">
    <option value="0">public</option>
    <option value="1">pvt Ltd</option>
    <option value="2">LLP</option>
    <option value="3">NPO</option>
    <option value="4">partnership</option>
    <option value="5">proprietorship</option>
    <option value="6">one person</option>
</select>

我该怎么做才能使选择框成为?:

<select class="form-control" id="cmp_type" name="cmp_type">
    <option value="public">public</option>
    <option value="pvt Ltd">pvt Ltd</option>
    <option value="LLP">LLP</option>
    <option value="NPO">NPO</option>
    <option value="partnership">partnership</option>
    <option value="proprietorship">proprietorship</option>
    <option value="one person">one person</option>
</select>
4

2 回答 2

3

我相信发生的事情是,当您调用时pluck,您将返回一个数值数组(集合?),并且这些数字键被用于value属性,并且所述键的实际值被用作显示,什么如果你这样做了:

$cmp_types = cmpTypes::where('status' , true )->pluck('type');
$cmp_types = array_combine($cpm_types, $cmp_types);

阅读材料

array_combine

于 2019-03-22T10:09:18.790 回答
0

array_combine() 帮助了我。

解决方案是:

public function showAddCompany()
    {
        $cmp_types_obj = cmpTypes::where('status' , true )->pluck('type');
        $cmp_types = json_decode($cmp_types_obj);
        $cmp_types = array_combine($cmp_types, $cmp_types);
        return view('addCompany', compact('cmp_types'));
    }

我的查询返回一个对象,所以我先将它转换为一个数组,然后我将它与自身组合以获得一个关联数组

['public']=>'public,['private']=>'private',...
于 2019-03-22T10:29:45.150 回答