如何更新Laravel 5.2中的复选框字段和选项字段?

时间:2017-10-24 05:57:18

标签: php laravel laravel-5.2

我可以更新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');
}

3 个答案:

答案 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还是Noreal_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