Php 如何正确选中复选框取决于角色的权限?
我已经在我的Laravel应用程序中实现了Laratrust角色系统。现在,我将所有可用角色呈现给超级管理员,以便添加新权限或从特定角色中删除它们 这是我的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
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;аааааааааааааа。它们真的像你期望的那样吗?谢谢你的回答)