【问题标题】:Laravel: Use same column as option name and its value in select box/drop-down?Laravel:在选择框/下拉列表中使用与选项名称及其值相同的列?
【发布时间】:2019-03-22 10:01:21
【问题描述】:

我正在尝试在 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>

【问题讨论】:

  • type 列是什么?里面有什么样的数据?

标签: php forms eloquent html-select laravel-5.8


【解决方案1】:

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

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

阅读材料

array_combine

【讨论】:

    【解决方案2】:

    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',...
    

    【讨论】:

    • 你应该接受另一个答案,而不是写你自己的答案。
    猜你喜欢
    • 2016-08-18
    • 1970-01-01
    • 2013-07-29
    • 1970-01-01
    • 2014-05-24
    • 1970-01-01
    • 2017-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多