无法在Laravel中使用toArray获取数组

时间:2017-06-20 13:05:45

标签: php laravel laravel-5

我有编辑按钮,看起来像这样

<a class="btn btn-primary" href="{{ route('admin.roles.edit',$role->id) }}">Edit</a>

路线

Route::get('roles/{id}/edit',['as'=>'admin.roles.edit','uses'=>'RoleController@edit','middleware' => ['permission:role-edit']]);

和RoleController @编辑功能

 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行中的FatalThrowableError:

     

在数组

上调用成员函数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

dd($permission)也返回正确的数组。

3 个答案:

答案 0 :(得分:1)

是的,@aynber说的是什么。

线索在错误消息

  

“在数组”

上调用成员函数toArray()

当它已经是array时,您正尝试转换为array

答案 1 :(得分:1)

您无需使用->toArray(),因为结果已经arraycollection更正确了!

答案 2 :(得分:1)

您正在使用

  

普拉克

如果你想使用toArray,那么使用

  

获取

如下:

 $rolePermissions = DB::table("permission_role")->where("permission_role.role_id",$id)
         ->get(array('permission_role.permission_id','permission_role.permission_id'))->toArray();