由于 in_array 错误,无法显示 Laravel 中的角色
Unable to display roles in Laravel due to in_array error
我有角色编辑表单,我希望能够编辑角色权限。在我的控制器中我添加了这个
public function edit($id)
{
$role = Role::find($id);
$permission = Permission::get();
$rolePermissions = DB::table("permission_role")->where("permission_role.role_id",$id)
->pluck('permission_role.permission_id','permission_role.permission_id');
return view('roles.edit',compact('role','permission','rolePermissions'));
}
然后我试图显示哪些权限具有此角色,以便我可以 check/uncheck 并编辑它们。在我看来我有这个循环
@foreach($permission as $value)
<label>{{ Form::checkbox('permission[]', $value->id, in_array($value->id, $rolePermissions) ? true : false, array('class' => 'name')) }}
{{ $value->display_name }}</label><br/>
@endforeach
但是我得到了数组的错误
- in_array() expects parameter 2 to be array, object given
这一行:
{{ $value->display_name }}
这里有什么问题?
请在您的函数中更新这行代码edit($id)
$rolePermissions = DB::table("permission_role")
->where("permission_role.role_id",$id)
->select('permission_id')->toArray();
说明:
您正在传递 in_array
中的任何对象
只需要转换成数组
$rolePermissions = DB::table("permission_role")->where("permission_role.role_id", $id)
->pluck('permission_role.permission_id', 'permission_role.permission_id')
->toArray();
我有角色编辑表单,我希望能够编辑角色权限。在我的控制器中我添加了这个
public function edit($id)
{
$role = Role::find($id);
$permission = Permission::get();
$rolePermissions = DB::table("permission_role")->where("permission_role.role_id",$id)
->pluck('permission_role.permission_id','permission_role.permission_id');
return view('roles.edit',compact('role','permission','rolePermissions'));
}
然后我试图显示哪些权限具有此角色,以便我可以 check/uncheck 并编辑它们。在我看来我有这个循环
@foreach($permission as $value)
<label>{{ Form::checkbox('permission[]', $value->id, in_array($value->id, $rolePermissions) ? true : false, array('class' => 'name')) }}
{{ $value->display_name }}</label><br/>
@endforeach
但是我得到了数组的错误
- in_array() expects parameter 2 to be array, object given
这一行:
{{ $value->display_name }}
这里有什么问题?
请在您的函数中更新这行代码edit($id)
$rolePermissions = DB::table("permission_role")
->where("permission_role.role_id",$id)
->select('permission_id')->toArray();
说明:
您正在传递 in_array
只需要转换成数组
$rolePermissions = DB::table("permission_role")->where("permission_role.role_id", $id)
->pluck('permission_role.permission_id', 'permission_role.permission_id')
->toArray();