【发布时间】:2017-10-03 16:50:50
【问题描述】:
我在我的应用程序中为 ACL 使用 Laratrust 包。我正在尝试使用复选框编辑角色(为角色分配权限)。并希望从数据库中检查已分配的权限复选框状态。
RoleController.php中的代码
public function edit($id)
{
$role = Role::where('id', $id)->with('permissions')->first();
$permissions = Permission::all();
return view('admin.manage.roles.edit')->withRole($role)->withPermissions($permissions);
}
以下是我尝试过的代码:
@foreach($permissions as $permission)
<div class="checkbox checkbox-styled">
<label>
<input type="checkbox" name="permissions[]" value="{{$permission->id}}"
{{ $role->permissions->pluck('id') == $permission->id ? 'checked' : '' }}
>
<span>{{$permission->display_name}} <em>({{$permission->description}})</em></span>
</label>
</div>
@endforeach
代码抛出错误
Object of class Illuminate\Support\Collection could not be converted to int
我试过了:
{{ $role->permissions->id == $permission->id ? 'checked' : '' }}
这会引发错误:
Property [id] does not exist on this collection instance
当我做{{dd($role->permissions)}}时:给出以下输出:
如果有人能指出我在这里做的错误,我将非常感激。
【问题讨论】:
-
你能回显“
”吗? print_r($role->permissions);并显示
-
您正在尝试检查集合是否等于 int。
$role->permissions是一个集合。尝试编辑您的帖子,同时包含您的控制器。 -
@Classified 我已经用我的控制器的代码更新了这个问题。
标签: php laravel laravel-5.4 blade