如何从laravel中的多对多关系中获取数组?

时间:2017-09-11 17:47:25

标签: laravel

我的用户可以管理多个群集,每个群集都有多个属于它的国家/地区。 我使用以下方式获得了auth用户群集:

$userClusters = Auth::user()->clusters()->lists('name','cluster_id');

现在我需要为每个群集获取国家(我在群集和国家之间有一对多的关系)

国家关系

public function countries()
{
    return $this->hasMany('App\Country');
}

3 个答案:

答案 0 :(得分:3)

试试吧

 $userClusters = Auth::user()->clusters
 $userClusters->load('countries')

并阅读

laravel eager loading

答案 1 :(得分:1)

您可以执行以下操作:

$clusters = Auth::user()->load('clusters.countries')->clusters;

load()方法将返回原始模型,以便您立即访问群集关系。

希望这有帮助!

答案 2 :(得分:0)

$userClusters = User::with('clusters.countries')->where('id',Auth::id())->get();