Php Laravel复选框未提交给控制器

Php Laravel复选框未提交给控制器,php,laravel,checkbox,input,Php,Laravel,Checkbox,Input,在这样的视图中,我有一个简单的表单: <form action="{{ URL::route('admin.x') }}" method="POST"> <input type="text" value="b" name="title" /> <input type="text" value="c" name=&

在这样的视图中,我有一个简单的表单:

<form action="{{ URL::route('admin.x') }}" method="POST">
    <input type="text" value="b" name="title" />
    <input type="text" value="c" name="type" />
    <input type="text" value="d" name="postfix" />
    <input type="checkbox" name="check" value="ss" />
    <input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>
用于检查从视图发布到控制器的所有值。结果如下,我想知道如何在表单中发布复选框值

阵列:4[▼

“标题”=>“”

“类型”=>“”

“后缀”=>“”

“_token”=>“kSM3pO11KOOWQcCx4PeWcbi4r4AsFx0rSGQoVFtG”

]


如果用户或客户端脚本未选中复选框,则复选框输入不会提交到服务器端脚本。因此,在这些情况下,输入不会发送到控制器

在laravel中,如果您希望以某种方式“规范化”输入未发送的情况,您可以自己创建一个字段:

$data = Input::all();

if ( ! isset($data['check']) )
    $data['check'] = false; 

如果选中复选框,则返回true;如果未选中,则返回false

Input:has('check')

通过在复选框字段上方创建一个同名的隐藏输入字段,您可以确保服务器端收到复选框的值,而不管它是否被选中

这样,如果表单在未选中复选框的情况下提交,则服务器端将从隐藏的输入字段接收值,而如果选中复选框,则由于表单中的字段较低,服务器将接收选中的值



您的意思是,如果用户选中复选框,它将出现在dd(Input::all())结果中?是的,如果您选中复选框,您将在示例中看到:
“check”=>“ss”
,因为
ss
是您分配给该输入的值,但它没有按照您说的那样发生。@MahmoodKohansal:dd(Input::all())的结果是什么当您选中复选框时?谢谢,它对我有效…只是一件小事…if语句后缺少“)”复选与否没有区别!也许有什么不对劲,但它还是给了我错误的答案。
Input:has('check')