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();