在 Laravel Collectives 中为选择分配值

问题描述 投票:0回答:1

我不确定我是否在这里做了任何事情,而且我真的找不到任何关于此的文档。好的文档建议也很好。我尝试填充 Laravel Collectives 中的选择,但我不确定如何正确设置 id 字段,因为现在它只是返回位置。 所以我从控制器传递了一个表:

$stuff_types = DB::table('companies')->where('active', '1')->pluck('name','id');

在我看来这就是:

{{Form::select('stuff_types', array_merge(array('default' => 'Please Select'), $stuff_types->all('name', 'id')), null, ['class'=>'form-control', 'id'=>"order-type"]) }}

我现在想指定显示的名称是什么以及后面的值是什么,以便我可以在 javascript 中调用它。如果我在没有 Collectives 的情况下执行此操作,它看起来像这样:

<select name="categories" id="categories" class="form-control">    
                                        <option value="-5">Pleace Select</option>                                    
                                    @foreach($positions as $sector)
                                        @if ($sector->id == 2 || $sector->id == 3)
                                            <option value="{{ $sector->id }}">{{ $sector->name }}</option>
                                        @endif
                                    @endforeach
                                </select>

有人可以给我一个提示,如何验证数组而不是逐一检查每个值:

$sector->id == 2 || $sector->id == 3

提前致谢

斯蒂芬


更新2019-08-14

在nakov的帮助下,我们可以找出问题并解决它:

选项1:

控制器

$stuff_types = DB::table('companies')->where('active', '1')->pluck('name','id');
$stuff_types->prepend('Please Select', '');

查看:

{{Form::select('stuff_types', $stuff_types, null, ['class'=>'form-control', 'id'=>"order-type"]) }}

选项2:

控制器

$stuff_types = DB::table('companies')->where('active', '1')->pluck('name','id')->toArray();

查看:

{{Form::select('stuff_types', ['' => 'Please Select'] + $stuff_types, null, ['class'=>'form-control', 'id'=>"order-type"]) }}
php laravel laravel-blade html-select
1个回答
1
投票

元素中的第二个参数应该是元素数组,因此您已经从控制器以正确的方式传递它,它应该是这样的数组:

[1 => 'Title 1', 2 => 'Title 2' ....]

所以你需要的是这个:

{{Form::select('stuff_types', array_merge(array('default' => 'Please Select'), $stuff_types), null, ['class'=>'form-control', 'id'=>"order-type"]) }}

只需删除对

all
的呼叫:)

第三个参数,目前是

null
,是你需要预先选择的值。

--编辑

在您的控制器中添加以下内容:

$stuff_types = DB::table('companies')->where('active', '1')->pluck('name','id')->toArray();

并将上面的代码用于我共享的选择。

© www.soinside.com 2019 - 2024. All rights reserved.