使用Laravel集合获取值而不是key

时间:2018-03-01 09:40:36

标签: php laravel laravel-blade laravel-collection

$job_types = DB::table('jobs')->pluck('job_type')->unique();

高级代码返回如下的集合。

enter image description here

同样在Laravel Blade代码下方制作带有上部集合的选择列表。

<!-- Job Type Field -->
<div class="form-group col-sm-4" >
    {!! Form::label('job_type', 'Emne:') !!}        
    {!! Form::select('job_type', $job_types, null, ['class' => 'form-control', 'id' => 'job_type']) !!}
</div>

这是选择框的返回视图。 enter image description here

所以我的目标是在选择框中发布选定的值。 但我得到了像0,2,17,6这样的密钥作为数据库中的值。 我仍然只有 KEY 而不是

如何获取将数据插入数据库的值?

3 个答案:

答案 0 :(得分:1)

请参阅:https://laravel.com/docs/4.2/html#drop-down-lists

Form::select('size', array('L' => 'Large', 'S' => 'Small'));

数组键将被视为select的值。

因此,您的问题是您的$job_types数组未按照您的请求进行格式化。

如果您希望将job_type作为select值,请确保它们是$job_types密钥。

更改:

$job_types = DB::table('jobs')->pluck('job_type')->unique();

$job_types = DB::table('jobs')->pluck('job_type', 'job_type')->unique();

答案 1 :(得分:0)

您可以简单地将第二个参数提供给pluck方法:

$job_types = DB::table('jobs')->pluck('job_type', 'job_type')->unique();

但是,我认为你应该重新考虑存储价值的做法,因为它可能会导致违反database normalization

答案 2 :(得分:0)

使用groupBy()

$job_types = DB::table('jobs')->groupBy('job_type')->pluck('job_type');