4

我正在使用 Laravel 的 API 资源将资源转换为 API 调用的数组,并且它工作正常,我是否可以在一次调用中检索多个模型的数据?至于获取用户的 JSON 数据以及 Pages JSON 吗?或者我需要为此单独打电话。

这是我到目前为止所尝试的

//Controller
public function index(Request $request)
{
    $users = User::all();
    $pages = Page::all();
    return new UserCollection($users);
}

//API Resource
public function toArray($request)
    {
        return [
            'name' => $this->name,
            'username' => $this->username,
            'bitcoin' => $this->bitcoin,
        ];
    }

任何帮助将不胜感激

4

3 回答 3

7

您可以执行以下操作:

public function index(Request $request)
{
    $users = User::all();
    $pages = Page::all();
    return [
        'users' => new UserCollection($users),
        'pages' => new PageCollection($pages),
    ];
}
于 2018-11-22T12:54:00.387 回答
1

拉拉维尔 6..

如果您喜欢以下内容,这应该 100% 有效,您实际上帮助我解决了我遇到的问题,这是对这种青睐的回报:3。更改以下内容:

'advertisements' => new AdvertisementCollection(Advertisement::latest()->get()),

to (将使用可变或仅使用海峡数据库查询)

'advertisements' => AdvertisementCollection::collection(Advertisement::latest()->get())



class HomeController extends Controller
{
    public function index()
        {
           $ads = Advertisement::latest()->get();
           $banners = Banner::latest()->get();
           $sliders = Slider::latest()->get()
            return [
                'advertisements' => AdvertisementCollection::collection($ads),
                'banners' => BannerCollection::collection($banners),
                'sliders' => SliderCollection::collection($sliders),
                ];
        }
}
于 2020-02-04T13:22:05.270 回答
0

我正在使用laravel 6.x,而且我不知道 laravel 正在转换响应或做某事,但我得到的响应JSON也如下所示:

class HomeController extends Controller
{
    public function index()
        {
            return [
                'advertisements' => new AdvertisementCollection(Advertisement::latest()->get()),
                'banners' => new BannerCollection(Banner::latest()->get()),
                'sliders' => new SliderCollection(Slider::latest()->get())
                ];
        }
}
于 2019-12-17T11:55:14.290 回答