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

问题描述 投票:0回答:1

我有一个postsint表有一个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();
    }
php laravel
1个回答
1
投票

你必须使用larave dd()来查看你在请求中得到的内容,如果你检查它,你从活动字段中“开启”,或者如果未选中则你得到null,如果你希望那么可以使用复选框来简化。这发生在你身上,你可以像这样使用:

$post->active = ($request->active == 'on') ? 1 : 0;
© www.soinside.com 2019 - 2024. All rights reserved.