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

问题描述 投票:1回答:3
$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而不是Value。

我怎样才能获得将数据插入数据库的值?

php laravel laravel-blade laravel-collection
3个回答
0
投票

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

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

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


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();


0
投票

使用groupBy()

$job_types = DB::table('jobs')->groupBy('job_type')->pluck('job_type');
© www.soinside.com 2019 - 2024. All rights reserved.