$job_types = DB::table('jobs')->pluck('job_type')->unique();
上层代码返回如下集合。
在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>
所以我的目标是在选择框中发布选定的值。但我得到了像0,2,17,6这样的密钥作为数据库中的值。我仍然只有KEY而不是Value。
我怎样才能获得将数据插入数据库的值?
您可以简单地将第二个参数提供给pluck方法:
$job_types = DB::table('jobs')->pluck('job_type', 'job_type')->unique();
但是,我认为您应该重新考虑存储价值的做法,因为它可能导致database normalization违规。
见: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();
使用groupBy()
:
$job_types = DB::table('jobs')->groupBy('job_type')->pluck('job_type');