Php Laravel多对多获取第三个实例选择的集合
我试图在我的应用程序中从多对多关系中获取集合 很快解释一下:假设我有一些类别,它们本身有专用的hashtag。这些标签又有了照片 现在,我想抓住一个类别和它的专用标签。但我也想抓取所有与这些标签相关联的照片 以下是我尝试过的,但仍然不起作用: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) {
$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,则会得到一个空数组。(数据库中肯定有照片)