将存储过程结果传递给 Laravel API 资源
Passing Stored Procedure result to Laravel API Resource
我想将执行的存储过程的结果传递给我的PB.vue
但问题是,它给我一个错误提示:
Call to a member function first() on array
public function index()
{
$pbs = DB::select('EXECUTE [dbo].[spQueryContainer]');
return PBResource::collection($pbs);
}
DB::select($query) returns stdclass 对象的 数组,而不是 集合 .但是,可以使用 collect() 函数对其进行转换:
$pbs = DB::select('EXECUTE [dbo].[spQueryContainer]');
$pbCollection = collect($pbs); //Transform the array into a Laravel Collection of stdclass
return PBResource::collection($pbCollection);
即使集合包含错误的类型(stdclass 而不是 PB),只要给定对象具有资源中使用的所有属性,资源仍将使用它。
如果你想要一个更干净的解决方案,你应该尝试将 stdclass 对象转换为 PB 对象。该话题在此 post.
上讨论
我想将执行的存储过程的结果传递给我的PB.vue
但问题是,它给我一个错误提示:
Call to a member function first() on array
public function index()
{
$pbs = DB::select('EXECUTE [dbo].[spQueryContainer]');
return PBResource::collection($pbs);
}
DB::select($query) returns stdclass 对象的 数组,而不是 集合 .但是,可以使用 collect() 函数对其进行转换:
$pbs = DB::select('EXECUTE [dbo].[spQueryContainer]');
$pbCollection = collect($pbs); //Transform the array into a Laravel Collection of stdclass
return PBResource::collection($pbCollection);
即使集合包含错误的类型(stdclass 而不是 PB),只要给定对象具有资源中使用的所有属性,资源仍将使用它。
如果你想要一个更干净的解决方案,你应该尝试将 stdclass 对象转换为 PB 对象。该话题在此 post.
上讨论