Передача результата хранимой процедуры в ресурс Laravel API - PullRequest
0 голосов
/ 24 мая 2019

Я хотел передать результат выполненной хранимой процедуры моему PB.vue

Но проблема в том, что он выдает мне сообщение об ошибке:

Вызов членафункция first () в массиве

public function index()
{
    $pbs = DB::select('EXECUTE [dbo].[spQueryContainer]');

    return PBResource::collection($pbs); 
}

1 Ответ

1 голос
/ 25 мая 2019

DB :: select ($ query) возвращает массив объектов стандартного класса , а не коллекцию .Однако его можно преобразовать с помощью функции 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.Тема обсуждается в этом сообщении .

...