Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检查';选中';复选框-php_Php_Laravel - Fatal编程技术网

如何检查';选中';复选框-php

如何检查';选中';复选框-php,php,laravel,Php,Laravel,我试图在复选框中将选中的值从视图发送到数据库,但系统要么全部选中,要么不选中。 我将Laravel5.3与PHP5一起使用。 这是我的复选框视图 <?php foreach($tests as $test) { if($test == 1) { echo "<input type='checkbox' name='check' value='1' checked/><br>

我试图在复选框中将选中的值从视图发送到数据库,但系统要么全部选中,要么不选中。 我将Laravel5.3与PHP5一起使用。 这是我的复选框视图

<?php
            foreach($tests as $test) {
                if($test == 1) {
                    echo "<input type='checkbox' name='check' value='1' checked/><br>";
                }               
                else {
                    echo "<input type='checkbox' name='check'/><br>";
                }

            }
        ?>

任何帮助都将不胜感激。

回答问题

测试表单中是否选中复选框的方法是以下代码:

if (Input::has('check')) {
    // your logic here
}
在回答您的问题后,我注意到代码中存在一个问题,您希望将权限附加到角色。如果您感兴趣,我为其编写了修复程序:

固定件

我很确定您有一个页面,可以在其中设置角色的权限。这意味着只有一个角色,但有多个权限。我建议你在你看来这样做:

@foreach($permissions as $permission)
    @if ($role->permissions()->contains($permission))
        <input type="checkbox" value="1" name="permissions[{{ $permission->id }}]" checked>
    @else
        <input type="checkbox" value="1" name="permissions[{{ $permission->id }}]">
    @endif
@endforeach

使用
如果(Input::has('check'))
insteadSry@hassan但条件仍然相同,它要么全部选中,要么不尝试使用html中的复选框名称作为数组,即@rajeshk所说的(check[]),您需要将您的复选框名称定义为数组
check[]
,只要您使用foreach创建您的复选框,我仍然不走运。我尝试了你所有的建议。我需要提供其他东西吗@RajeshK
@foreach($permissions as $permission)
    @if ($role->permissions()->contains($permission))
        <input type="checkbox" value="1" name="permissions[{{ $permission->id }}]" checked>
    @else
        <input type="checkbox" value="1" name="permissions[{{ $permission->id }}]">
    @endif
@endforeach
public function updatepermission(Request $request, $id) {
    $role = Role::find($id);
    $permissions = $request->input('permissions', []);
    $permissionIds = array_keys($permissions);


    $role->permissions()->sync($permissionIds);
    return redirect('role')->with('message','Permissions has been updated');
}