【问题标题】:Laravel foreach loop with checkboxes带有复选框的 Laravel foreach 循环
【发布时间】:2021-07-12 08:22:58
【问题描述】:

我有以下两个数组

$vendor_permissions = [1,2,3,4]
$assigned_vendor_permissions = [1,3]

我有一个表格,其中一行中的所有权限都有复选框。

现在,我只想检查具有$assigned_vendor_permissions 的复选框,这意味着在这种情况下,根据$vendor_permissions 有4 个复选框,并且必须检查2 个作为分配给用户的权限$assigned_vendor_permissions [1,3]

我尝试了下面的循环,但我无法成功,因为它重复了复选框 4次以上,

@foreach ( $vendor_permissions as $vendor_permission )             
    @if ($assigned_vendor_permissions->isNotEmpty())
        @foreach ( $assigned_vendor_permissions as $rolem )                                        
            <td style="width: 15%"><label class="checkbox"><input type="checkbox" name="permissions[]" id="{{ $vendor_permission->name }}" 
            {{ $vendor_permission->id == $rolem->id ? 'checked="checked"' : '' }} value="{{ $vendor_permission->id }}""><span></span></label></td> 
        @endforeach   
    @else
        <td style="width: 15%"><label class="checkbox"><input type="checkbox" name="permissions[]" id="{{ $vendor_permission->name }}" 
            value="{{ $vendor_permission->id }}""><span></span></label></td> 
    @endif                          
@endforeach

如何根据数组选中和取消选中这些复选框?

dd($assigned_vendor_permissions);的输出

array:2 [▼
  0 => array:6 [▶
    "id" => 1
    "name" => "vendor_create"
    "guard_name" => "web"
    "created_at" => null
    "updated_at" => null
    "pivot" => array:2 [▶
      "role_id" => 2
      "permission_id" => 1
    ]
  ]
  1 => array:6 [▶
    "id" => 2
    "name" => "vendor_read"
    "guard_name" => "web"
    "created_at" => null
    "updated_at" => null
    "pivot" => array:2 [▶
      "role_id" => 2
      "permission_id" => 2
    ]
  ]
]

【问题讨论】:

    标签: php laravel foreach


    【解决方案1】:

    代替循环,使用in_array

    @foreach ( $vendor_permissions as $vendor_permission )
    
        <td style="width: 15%">
            <label class="checkbox">
                <input type="checkbox" name="permissions[]" 
                       id="{{ $vendor_permission->name }}"
                       value="{{ $vendor_permission->id }}"  
                    {{(is_array($assigned_vendor_permissions)&&in_array($vendor_permission->id,$assigned_vendor_permissions))?"checked":null}}
                >
                <span>
                    
                </span>
            </label>
        </td>
    
    @endforeach
    

    【讨论】:

    • 如果有分配权限的集合而不是数组,如何将其用于 laravel 集合?
    • 只要返回到Array()
    • 现在它显示了所有 4 个复选框,但没有选中具有 3 个权限的复选框。全部未选中。
    • 首先检查 dd($assigned_vendor_permissions) 并显示你有什么
    • @rjcode 你想检查哪个 id .is it "id" => 1
    猜你喜欢
    • 2020-05-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-24
    • 2017-05-20
    • 2021-04-27
    • 1970-01-01
    • 1970-01-01
    • 2018-06-23
    相关资源
    最近更新 更多