Laravel复选框未提交给控制器

时间:2016-07-17 18:28:07

标签: 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="type" />
    <input type="text" value="d" name="postfix" />
    <input type="checkbox" name="check" value="ss" />
    <input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>

我用过

dd(Input::all());

用于检查从视图发布到控制器的所有值。结果如下所示,我想知道如何使用表单发布复选框值。

  

数组:4 [▼

     

&#34;标题&#34; =&GT; &#34;&#34;

     

&#34;类型&#34; =&GT; &#34;&#34;

     

&#34;后缀&#34; =&GT; &#34;&#34;

     

&#34; _token&#34; =&GT; &#34; kSM3pO11KOOWQcCx4PeWcbi4r4AsFx0rSGQoVFtG&#34;

     

3 个答案:

答案 0 :(得分:1)

您可以通过创建隐藏的输入字段来确保服务器端收到复选框的值,无论是否已选中该复选框,方法是创建一个名称 复选框字段的隐藏输入字段。

这样,如果在没有选中复选框的情况下提交表单,服务器端将从隐藏的输入字段接收值,而如果选中该复选框,则服务器将收到检查的值,因为该字段在形式。

<input type="hidden" name="checkbox" value="0"/> <input type="checkbox" name="checkbox" value="ss"/>

答案 1 :(得分:0)

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

在laravel中,如果你想要正常化&#39;不知何故,当输入未被发送时,你可以自己创建一个字段:

$data = Input::all();

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

答案 2 :(得分:0)

如果选中该复选框,则返回true,否则返回false。

Input:has('check')