我有一个有一个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();
}
答案 0 :(得分:1)
您必须使用larave dd()来查看您的请求中的内容,并且您已经了解了#39;如果您检查它,或者如果未选中,则从活动字段中获取空值,如果您愿意,则可以使用复选框进行简化。这发生在你身上,你可以这样使用:
$post->active = ($request->active == 'on') ? 1 : 0;