我有一个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();
}
你必须使用larave dd()来查看你在请求中得到的内容,如果你检查它,你从活动字段中“开启”,或者如果未选中则你得到null,如果你希望那么可以使用复选框来简化。这发生在你身上,你可以像这样使用:
$post->active = ($request->active == 'on') ? 1 : 0;