在我的注册表格中,我有一个复选框,用户可以接受它来接收时事通讯。
在create函数中,我想显示所有传递的数据:
protected function create(array $data)
{
dd($data);
}我的复选框字段名为newsletter。当我做dd()时,我不会得到时事通讯的价值,只有:name、email和password。
如果我将此时事通讯添加到Validator中,则会显示它。
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|min:6|confirmed',
'newsletter' => 'required',
]);
}现在,当我执行dd()时,它就被传递了,但是我不希望这个复选框是required。这应该是可选的。我应该在Validator里换点什么吗?
发布于 2017-11-13 13:56:44
您的newsletter字段是一个复选框。当提交html表单而未选中复选框时,此字段将在已发布的数据中不可用。如果选中了复选框,它将可用。这是默认的html行为,您对此无能为力。
若要检查是否已在代码中选中复选框,可以使用以下命令:
$checked = array_key_exists('newsletter', $data);https://stackoverflow.com/questions/47265909
复制相似问题