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

Get the value instead of key with Laravel collection

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

上码return合集如下

同样在 Laravel Blade 代码下方使 select 列表具有上层集合。

<!-- 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>

这是 return 视图 select 框。

所以我的目标是 post select 在 select 框中输入值。 但我在数据库中得到了这些键,如 0、2、17、6 作为值。 我仍然只有 KEY 而不是 Value.

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

你可以简单地将第二个参数传递给 pluck 方法:

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

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

使用groupBy():

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

参见: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();