gpt4 book ai didi

laravel - 在从 Controller 返回之前,如何将 Laravel 5.5 中的 API 资源类转换为数组?

转载 作者:行者123 更新时间:2023-12-01 13:19:33 24 4
gpt4 key购买 nike

通常,在 Laravel 5.5 中,当使用 api 资源类时,您只需从 Controller 方法中返回资源类实例,如下所示:

public function show(Request $request, MyModel $model)
{
return new MyModelResource($model);
}

这会在对客户端的响应中将模型转换为数组(并最终转换为 json)。

但是...我想弄清楚如何在从 Controller 方法返回之前将所有内容转换为数组。我试过这个:

public function show(Request $request, MyModel $model)
{
$array = (new MyModelResource($model))->toArray($request);

// ...
}

这里的问题是资源上加载的任何关系都没有转换为数组。它们作为资源类的实例出现在 $array 中。显然,手动调用 toArray() 不会导致递归调用,而且 ->whenLoaded('relationship_name') 等方法也未得到真正尊重。

那么我如何让 Laravel 完成它所做的一切以递归地将资源转换为数组而不必从我的 Controller 方法返回它呢?

最佳答案

我相信您正在寻找的是资源类上的 resolve 方法。参见 definition .

从外观上看,它也应该处理将关系转换为数组的过程。只要确定你是 setting up your resource relationships properly .

关于laravel - 在从 Controller 返回之前,如何将 Laravel 5.5 中的 API 资源类转换为数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50954556/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com