用于选择下拉列表的 Laravel 模型绑定

use*_*est 5 php laravel-5

我希望在编辑表单中选择选择下拉值。

在我的控制器中

public function edit($id)
{
    $vedit = DB::table('vehicles')->where('id', $id)->first();
    $cartype= DB::table('car_category')->pluck('cartype'); 
    return view('vehicles.edit', compact('vedit','cartype'));
}
Run Code Online (Sandbox Code Playgroud)

视野中

{{ Form::label('Vehicle Type', 'Vehicle Type') }}
<select name="vehicle_type" class="form-control">
  @foreach($cartype as $cartypes)   
  <option value="{{ $cartypes}}">{{ $cartypes}}</option>
  @endforeach
</select>
Run Code Online (Sandbox Code Playgroud)

我怎样才能实现这个目标?

Jam*_*mes 0

通过调用,pluck()已经返回了汽车类型的值数组。

因此,只需在 Laravel Collective 中本地使用它即可:

{!! Form::label('Vehicle Type', 'Vehicle Type') !!}
{!! Form::select('vehicle_type', $cartype, null, ['class' => 'form-control']) !!}
Run Code Online (Sandbox Code Playgroud)

请注意,我还更改了您的双花括号。双花括号对输出进行转义 - 鉴于Form外观返回 HTML 代码,您希望它不被转义。

有关使用 Laravel Collective 生成​​下拉列表的更多信息;https://laravelcollective.com/docs/5.4/html#drop-down-lists

如果表单验证失败,编辑显示当前选择的值和旧值:

{!! Form::label('Vehicle Type', 'Vehicle Type') !!}
{!! Form::select('vehicle_type', $cartype, old('vehicle_type', $vedit->vehicle_type), ['class' => 'form-control']) !!}
Run Code Online (Sandbox Code Playgroud)