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

时间:2017-10-30 09:15:03

标签: 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'));
}

在视图中

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

我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:2)

如果您选择了selected属性,则可以添加{{ Form::label('Vehicle Type', 'Vehicle Type') }} <select name="vehicle_type" class="form-control"> @foreach($cartype as $cartypes) <option value="{{ $cartypes}}" {{ $cartypes == $vedit->vehicle_type ? 'selected' : ''}}>{{ $cartypes}}</option> @endforeach </select> 属性:

parent.jQuery.fancybox.getInstance().update();

答案 1 :(得分:0)

通过调用pluck(),已经为汽车类型返回了一系列值。

所以就像Laravel Collective本身一样使用它:

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

注意,我也改变了你的双花括号。双花括号转义输出 - 假设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']) !!}

答案 2 :(得分:0)

您使用的是什么版本的Laravel?看起来你正在使用Laravel Collective Form facade。

在这种情况下,这应该可以正常工作:

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

假设$vedit->vehicle_type是您先前存储的车辆类型。所以它会在编辑时预先选择。如果创建新的,old('vehicle_type')应该在失败的验证中保留先前选择的值。