Php Laravel多对多获取第三个实例选择的集合

Php Laravel多对多获取第三个实例选择的集合,php,foreach,laravel,laravel-4,many-to-many,Php,Foreach,Laravel,Laravel 4,Many To Many,我试图在我的应用程序中从多对多关系中获取集合 很快解释一下:假设我有一些类别,它们本身有专用的hashtag。这些标签又有了照片 现在,我想抓住一个类别和它的专用标签。但我也想抓取所有与这些标签相关联的照片 以下是我尝试过的,但仍然不起作用: $all_related_hashtags = $categorie->hashtags()->get(); $photos = foreach ($all_related_hashtags as $hashtag) {

我试图在我的应用程序中从多对多关系中获取集合

很快解释一下:假设我有一些类别,它们本身有专用的hashtag。这些标签又有了照片

现在,我想抓住一个类别和它的专用标签。但我也想抓取所有与这些标签相关联的照片

以下是我尝试过的,但仍然不起作用:

 $all_related_hashtags = $categorie->hashtags()->get();

 $photos = foreach ($all_related_hashtags as $hashtag) {

        $hashtag->photos;

      }
有办法解决这个问题吗

任何帮助都会很棒

谢谢

编辑

@foreach ($all_related_hashtags as $hashtag)

@foreach(array_chunk($hashtag->photos, 4) as $row)

        <div class="row">

                @foreach($row as $photo)
@foreach ($all_related_hashtags as $hashtag)

@foreach ($hashtag->photos as $photo)

    {{ $photo->title }}

@endforeach

@endforeach
试试这个

$all_related_hashtags = $categorie->hashtags()->get();

$photos = array();

foreach ($all_related_hashtags as $hashtag) {

    $photos[] = $hashtag->photos;

}
如果您只想在视图中显示每个标签的照片,您可以使用嵌套循环调用视图中的照片,例如:

foreach ($all_related_hashtags as $hashtag) {
    foreach ($hashtag->photos->take($limit) as $photo){
        echo $photo->url
    }
}
试试这个:

$all_related_hashtags = $categorie->hashtags()->get();

$categorie_photos = array();

foreach ($all_related_hashtags as $hashtag) {

   $current_photos = array();

   foreach ( $hashtag->photos as $photo ) {
      $current_photos[] = $photo;
   }

   array_merge($categorie_photos, $current_photos);

}

你不应该在foreach循环中将hashtag对象一个接一个地推送到photosArray吗?我该怎么做?检查下面的答案。希望它能工作。我得到一个非对象错误,好像数组不包含任何照片(我在数据库中肯定有照片)。是的,照片数组是空的。我不确定这是否是您期望的结果,但使用$photos[]foreach循环中的不是$photos,而是将属于一个hashtag的照片组分配到集合中每个hashtag的单个数组块中,因此如果只分配$photos=$hashtag->photos;那么在循环结束时,$photos将只包含循环最后一个hastag的照片。那么你有其他想法吗?我会检查的。你能准确地告诉我上面的代码解决方案是如何产生错误的吗?如何在视图中调用$photos数组?如果返回$category\u photos,则会得到一个空数组。(数据库中肯定有照片)