【问题标题】:update with radio buttons is not working properly使用单选按钮更新无法正常工作
【发布时间】:2018-09-07 11:12:40
【问题描述】:

我有一个帖子表,其中有一个 tinyint 列“活动”。如果其为“1”,则帖子处于活动状态,如果“0”处于非活动状态。

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

如果在 db 中“活动”列是“1”,则单选按钮“活动”出现选中,如果是“0”,单选按钮“非活动”出现选中。这工作正常。

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

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】:

你必须使用 larave dd() 来查看你在请求中得到了什么,如果你选中它,你会从活动字段中获得“开启”,或者如果你没有选中,那么你会得到 null,如果你愿意,可以使用复选框来简化。这发生在你身上,你可以这样使用:

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

【讨论】:

  • 谢谢,但是更新到非活动状态只是工作,更新到活动状态不起作用,你知道为什么吗?
  • 我的事情发生在输入单选按钮 (value="1") 这个值。您不需要在单选按钮中传递值,因为您已经在控制器中处理了它。
猜你喜欢
  • 2013-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-26
  • 2013-03-27
  • 2012-12-28
相关资源
最近更新 更多