Php Can';我无法在拉威尔获得toArray阵列
我有一个编辑按钮,看起来像这样Php Can';我无法在拉威尔获得toArray阵列,php,laravel,laravel-5,Php,Laravel,Laravel 5,我有一个编辑按钮,看起来像这样 <a class="btn btn-primary" href="{{ route('admin.roles.edit',$role->id) }}">Edit</a> 及RoleController@edit作用 public function edit($id) { $role = Role::find($id); $permission = Permission:
<a class="btn btn-primary" href="{{ route('admin.roles.edit',$role->id) }}">Edit</a>
及RoleController@edit作用
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')->toArray();
return view('backend.roles.edit',compact('role','permission','rolePermissions'));
}
然而,我得到了这个toArray()的错误
RoleController.php第88行中的FatalThroTableError:
对数组上的成员函数toArray()的调用
我尝试了->all()
,->get()
仍然不起作用。谢谢你的帮助
Log::info
返回此
[2017-06-20 13:23:57] local.INFO: array (
5 => 5,
6 => 6,
7 => 7,
9 => 9,
10 => 10,
11 => 11,
12 => 12,
13 => 13,
)
更新:
我的视图中有此项,它应显示分配给此角色的所有权限
@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
@foreach($permission作为$value)
{Form::checkbox('permission[]',$value->id,在数组中($value->id,$rolePermissions)?true:false,数组('class'=>'name'))}
{{$value->display_name}
@endforeach
dd($permission)
也返回正确的数组。是的,什么@aynber
说的
线索在错误消息中
“对数组上的成员函数toArray()的调用”
您正在尝试转换为数组
,而它已经是数组
您不需要使用->toArray()
,因为结果已经是一个数组
或集合
,更加正确 您正在使用
扑通
如果要使用toArray,请使用
得到
详情如下:
$rolePermissions = DB::table("permission_role")->where("permission_role.role_id",$id)
->get(array('permission_role.permission_id','permission_role.permission_id'))->toArray();
Eloquent返回具有toArray()
函数的集合。您只使用查询生成器,它会自动返回一个数组。不需要toArray()
函数。这是什么版本的laravel?在5.3中,query builder Pull方法确实返回了一个集合。我使用的是Laravel 5.2
,如果我删除->toArray()
,我会得到一个空白的空页面,没有任何错误。如果我做了dd($rolePermissions)
我得到了未定义的变量:rolePermission
为什么要两次删除同一列?在返回视图之前,请尝试执行Log::info($rolePermissions)
,然后检查laravel.Log以查看有什么。您还可以尝试记录\DB::getQueryLog()
。更新了我的问题,返回了Log::info($rolePermissions)
我正在使用Laravel 5.2
,如果我删除->toArray()
我会得到一个空白的空页,没有任何错误。如果我删除dd($rolePermissions
我得到了未定义的变量:rolePermission
它会返回错误当数据库表中没有记录时,“调用成员函数toArray”。
$rolePermissions = DB::table("permission_role")->where("permission_role.role_id",$id)
->get(array('permission_role.permission_id','permission_role.permission_id'))->toArray();