使用单选按钮更新无法正常工作

时间:2018-03-28 16:46:47

标签: php laravel

我有一个有一个tinyint列“活动”的帖子表。如果“1”为“1”,则如果“0”无效,则该帖子处于活动状态。

所以我有一个表单,其中有2个单选按钮“活动”和“不活动”。

如果在db中“active”列为“1”,则会显示单选按钮“active”,如果为“0”,则会显示单选按钮“inactive”。这很好。

但是更新不起作用。选择单选按钮并单击“更新”按钮时,“活动”字段显示为空。你知道问题出在哪里吗?

array:2 [▼
  "active" => null
]

表单单选按钮:

<div class="form-group">
  <label for="active_inactive">Post Active or Inactive</label>
  <div class="hide-first">
    <div class="form-check">
      <input  {{  ($post->active) == 1 ? 'checked' : '' }}
      class="form-check-input radio" type="radio"
      name="active" value="1"
      id="{{$post->active}}">
      <label class="form-check-label" for="exampleRadios1">
        Active
      </label>
    </div>
    <div class="form-check">
      <input  {{  ($post->active) == 0 ? 'checked' : '' }}
      class="form-check-input radio" type="radio" name="active" id="{{$post->active}}" value="0">
      <label class="form-check-label" for="exampleRadios1">
        Inactive
      </label>
    </div>
  </div>
</div>

更新方法:

public function update(Request $request, $id)
    {

        //dd($request->all());

        $post = Post::find($id);

        $post->active = $request->active ?: 0;

        $post->save();

        Session::flash('success', 'Post status updated.');

        return redirect()->back();
    }

1 个答案:

答案 0 :(得分:1)

您必须使用larave dd()来查看您的请求中的内容,并且您已经了解了#39;如果您检查它,或者如果未选中,则从活动字段中获取空值,如果您愿意,则可以使用复选框进行简化。这发生在你身上,你可以这样使用:

$post->active = ($request->active == 'on') ? 1 : 0;