我可以更新text
的{{1}}字段,但我无法更新Laravel 5.2中的form
字段,checkbox
字段和option
字段。我将更新然后我可以看到所有文本值在更新刀片视图中完美显示但在选项字段,复选框字段我看到它是默认值它不来自数据库。再次,如果我用另一个选项更新,那么它不保存。到目前为止我尝试过:
我的控制器:
file
我的update.blade.php查看:
public function update(Request $request, $id=0)
{
//
$id = $request->input("id");
$product = Product::find($id);
$product->product_name = $request->input('product_name');
$product->product_storage = $request->input('product_storage');
$product->product_percentage = $request->input('product_percentage');
$product->can_draw = $request->input('can_draw');
$product->real_price = $request->input('real_price');
$product->product_image = $request->input('product_image');
$product->save();
$request->session()->flash('alert-info', 'Product Successfully Updated!');
return Redirect::to('admin/product/all');
}
答案 0 :(得分:1)
您的选项字段具有相同的值({{$ product-> can_draw}})
<option value="value1"{{( $product->can_draw=='value1'?selected)}}>{{ trans('common.open') }}open</option>
<option value="value2 " {{( $product->can_draw=='value1'?selected)}}>{{ trans('common.close') }}close</option>
并且对于文件字段必须使用不输入的文件:
$product->product_image = $request->file('product_image');
答案 1 :(得分:1)
请使用:
<input type="radio" {{$product->can_draw == 'Yes' ? 'checked' : ''}} class="form-control" name="real_price" value="Yes"> {{ trans('common.yes') }}yes
<input type="radio" {{$product->can_draw == 'Yes' ? '' : 'checked'}} class="form-control" name="real_price" value="No" > {{ trans('common.no') }}no
修改
我已编辑上述*
您应该将值更改为“是”和“否”,并使用此值检查value
已保存的内容是Yes
还是No
。 real_price
答案 2 :(得分:0)
您可以通过从选择名称请求来保存选项值。
在你的例子中:
select name = "can_draw"
只需保存请求中的值:
$product->can_draw = $request->can_draw;
对于复选框相同:
$product->real_price = $request->real_price;
不需要在请求中指示input()帮助器。
要检索选项的所有值和复选框值,请使用foreach方法:
@foreach($can_draws as $can_draw)
<option value="{{ $can_draw->id }}">{{ $can_draw->name}}</option>
@endforeach