Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用Laravel 5.3在集合中添加集合数组_Php_Laravel - Fatal编程技术网

Php 使用Laravel 5.3在集合中添加集合数组

Php 使用Laravel 5.3在集合中添加集合数组,php,laravel,Php,Laravel,我需要得到所有属于联邦主席的俱乐部 因此,我: $federation->associations 这让我收集了很多联想 $association->clubs that gives me a collection of clubs 我想: $federation->associations->clubs, but it doesn't work 我所做的: foreach ($federation->associations as $associati

我需要得到所有属于联邦主席的俱乐部

因此,我:

$federation->associations 
这让我收集了很多联想

$association->clubs that gives me a collection of clubs
我想:

$federation->associations->clubs, but it doesn't work
我所做的:

  foreach ($federation->associations as $association) {
       foreach ($association->clubs as $club){
           $clubs->push($club);
   }
 }
这是可行的,但我想我遗漏了一些东西,我可以更容易地做到

问题是,我将不得不在我的代码中花很多时间,所以,这不是很优雅

你知道如何做得更好吗

关联模型:

public function clubs()
{
    return $this->hasMany(Club::class);
}

您可以使用即时加载。使用点表示法关联嵌套模型

$federations = Federation::with('associations.clubs')->get();
现在一切都为你嵌套了

foreach ($federations as $federation) {
    foreach ($federation->associations as $association) {
        foreach ($assocation->clubs as $club) {
             ...
        }
    }
}
另一种方法是使用
hasManyThrough
关联方法。它确实与2有马尼斯

在您的
联合体中
模型

public function clubs()
{
    return $this->hasManyThrough(Club::class, Association::class);
}

您可以使用即时加载。使用点表示法关联嵌套模型

$federations = Federation::with('associations.clubs')->get();
现在一切都为你嵌套了

foreach ($federations as $federation) {
    foreach ($federation->associations as $association) {
        foreach ($assocation->clubs as $club) {
             ...
        }
    }
}
另一种方法是使用
hasManyThrough
关联方法。它确实与2有马尼斯

在您的
联合体中
模型

public function clubs()
{
    return $this->hasManyThrough(Club::class, Association::class);
}
你可以试试这个 关系

这将为您提供属于
联合会
协会
的所有俱乐部
关系


这将为您提供属于
联合会
协会
的所有俱乐部

您是否有俱乐部模型,以及您的协会模型是否有与俱乐部相关的方法设置?是的,如果您需要,我可以包括,但是关系是有效的。你有俱乐部的模型吗?你的协会模型是否有一个方法设置将其与俱乐部联系起来?是的,如果你需要,我可以包括它,但关系是有效的。这正是我正在做的。我正在寻找一些避免2 Foreach的方法,然后您可以在您的联合会模型中为俱乐部设置一个关系,这将是一个
hasManyThrough
。是的,我想这就是我要寻找的,但我不确定它是否与2有很多关系。这正是我正在做的。我正在寻找一些避免2 Foreach的方法,然后您可以在您的联合会模型中为俱乐部设置一个关系,这将是一个
hasManyThrough
。是的,我想这就是我要寻找的,但我不确定它是否与2有很多关系