在多对多中为每个关系返回单独的结果

时间:2014-04-01 18:24:54

标签: laravel laravel-4

我与以下结构有很多关系:

services
apps
service_app

我想有一个雄辩的查询来为每个关系(基本上是数据透视表)返回一个单独的结果。我有以下内容:

 $all = App::with('services')->get();

这将返回一个具有嵌套服务的应用程序,我希望这为每个应用程序服务组合返回一个单独的结果以及数据透视表中的数据。这怎么可能使用雄辩?

1 个答案:

答案 0 :(得分:0)

这有点奇怪,但如果您不将数据透视表视为数据透视表,而是将其视为AppService,则可以轻松完成。

所以你能做的就是为它创建一个模型,可能名为AppService。在该模型中,您将拥有2个belongsTo()关系。一个用于App,另一个用于Service

然后,您可以直接查询数据透视表,并使用这些关系来获取所需内容。

$appServices = AppService::all();
foreach($appServices as $appService) {
    echo $appService->app->description;
    echo $appService->service->description;
}