首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >表单复选框字段值没有传递给Laravel控制器。

表单复选框字段值没有传递给Laravel控制器。
EN

Stack Overflow用户
提问于 2017-11-13 13:51:07
回答 2查看 1.2K关注 0票数 1

在我的注册表格中,我有一个复选框,用户可以接受它来接收时事通讯。

create函数中,我想显示所有传递的数据:

代码语言:javascript
复制
protected function create(array $data)
{
    dd($data);
}

我的复选框字段名为newsletter。当我做dd()时,我不会得到时事通讯的价值,只有:nameemailpassword

如果我将此时事通讯添加到Validator中,则会显示它。

代码语言:javascript
复制
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里换点什么吗?

EN

Stack Overflow用户

发布于 2017-11-13 13:56:44

您的newsletter字段是一个复选框。当提交html表单而未选中复选框时,此字段将在已发布的数据中不可用。如果选中了复选框,它将可用。这是默认的html行为,您对此无能为力。

若要检查是否已在代码中选中复选框,可以使用以下命令:

代码语言:javascript
复制
$checked = array_key_exists('newsletter', $data);
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47265909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档