Php 如何正确选中复选框取决于角色的权限?

Php 如何正确选中复选框取决于角色的权限?,php,laravel,laravel-blade,Php,Laravel,Laravel Blade,我已经在我的Laravel应用程序中实现了Laratrust角色系统。现在,我将所有可用角色呈现给超级管理员,以便添加新权限或从特定角色中删除它们 这是我的AclController: public function index() { $roles = Role::all(); $permissions = Permission::all(); $temp = array(); foreach($permissions as $key => $value

我已经在我的Laravel应用程序中实现了Laratrust角色系统。现在,我将所有可用角色呈现给超级管理员,以便添加新权限或从特定角色中删除它们

这是我的
AclController

public function index()
{
    $roles = Role::all();
    $permissions = Permission::all();
    $temp = array();

    foreach($permissions as $key => $value) {
        array_push($temp, $value['name']);
    }

    return view('pages.acl.index')->with([ 'roles' => $roles, 'permissions' => $permissions, 'temp' => $temp ]);
}
以及
.blade
模板,我在其中显示权限和复选框:

<div class="tabs-vertical-env">
    <ul class="nav tabs-vertical" style="border-right: 1px solid #ddd;">
        @foreach ($roles as $role)
            <li class="">
                <a href="#{{ $role['name'] }}" data-toggle="tab" aria-expanded="false">{{ $role['display_name'] }}</a>
            </li>
        @endforeach
    </ul>

    <div class="tab-content">
        @foreach ($roles as $role)
            <div class="tab-pane" id="{{ $role['name'] }}">
                @foreach ($permissions as $permission)
                <div class="checkbox checkbox-success">
                        <input type="checkbox" name="{{ $permission['name'] }}" id="{{ $permission['name'] }}" {{ in_array($role->permissions, $temp) ? 'checked' : '' }} />
                        <label for="{{ $permission['name'] }}">
                            {{ $permission['display_name'] }}
                        </label>
                    </div>   
                @endforeach                               
            </div>
        @endforeach
    </div>
</div>

    @endforeach
@foreach($roles作为$role) @foreach($permissions作为$permission) 权限,$temp)“”选中“:”}}/> {{$permission['display_name']} @endforeach @endforeach

但不幸的是,它似乎不起作用。解决方法是什么?

您的代码应该如下所示:

<div class="tabs-vertical-env">
    <ul class="nav tabs-vertical" style="border-right: 1px solid #ddd;">
        @foreach ($roles as $role)
            <li class="">
                <a href="#{{ $role['name'] }}" data-toggle="tab" aria-expanded="false">{{ $role['display_name'] }}</a>
            </li>
        @endforeach
    </ul>

    <div class="tab-content">
        @foreach ($roles as $role)
            <div class="tab-pane" id="{{ $role['name'] }}">
                @foreach ($permissions as $permission)
                    <div class="checkbox checkbox-success">
                        <input 
                                type="checkbox" 
                                name="roles[{{ $role['id'] }}][permissions][{{ $permission['id'] }}]" 
                                id="{{ $role['name'] }}_{{ $permission['name'] }}" 
                                value="{{ $permission['id'] }}" 
                                {{ $role->hasPermission($permission['name']) ? 'checked' : '' }} 
                        />
                        <label for="{{ $role['name'] }}_{{ $permission['name'] }}">
                            {{ $permission['display_name'] }}
                        </label>
                    </div>
                @endforeach
            </div>
        @endforeach
    </div>
</div>

    @endforeach
@foreach($roles作为$role) @foreach($permissions作为$permission) hasPermission($permission['name'])?'选中“:”} /> {{$permission['display_name']} @endforeach @endforeach
它似乎不起作用了怎么办?你的电脑爆炸了?@u_mulder复选框没有爆炸checked@u_mulder但是为什么像
isset()、empty()
这样的其他函数可以正常工作呢?@u_mulder如果您像他那样使用它,blade中会支持它@kg1072;аааааааааааааа。它们真的像你期望的那样吗?谢谢你的回答)