我希望在我的编辑表单中选择选择下拉列表值。
在我的控制器中
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>
我怎样才能做到这一点?
答案 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')
应该在失败的验证中保留先前选择的值。