如何显示多对多关系的结果,并将结果分开,无论其ID如何?
@forelse ( $papers as $paper )
<article class="article-feeds mb-4">
@foreach ($paper->activityTypes as $actType )
<div class="flex ml-4" id="activitiesInformation">
<div class="flex-1">
<div>
<p class="font-bold">{{ $actType->activity_type }}</p> for {{ $paper->title }}
</div>
</div>
</div>
@endforeach
</article>
@empty
<p class="text-xl font-display">You don't have any activities listed for you</p>
</div>
@endforelse
我有一个显示纸张活动的刀片文件,但我需要的是显示它们中的每一个,就像在单独的活动源中一样,无论它们的ID如何,因为它们按照paper_id
键分组,我希望它分开
对于这个例子,我想看看
有了它的建议。
纸快速发布。
因为它们是不同的活动而彼此分开但是它们具有相同的纸张ID。
此外,,
这是activityTypes的关系,我在说
/*success here.*/
public function activityTypes()
{
return $this->belongsToMany(ActivityType::class,
'paper_activities',
'paper_id',
'activity_type_id')
->withPivot('creator_id','display_name','body','status')
->withTimestamps() ;
}
我希望我明白你的想法。你想要的是让所有activity types
与paper
和每张activity type
相关联。
要实现这一点,您可以从Controller中传递一个名为$activity_types
的新变量,您将这样填充:
//assuming you are returning it from the index method
public function index()
{
$papers = Paper::all();
$activity_types = $papers->flatMap->activityTypes;
return view('papers.index')
->with('activity_types', $activity_types);
}
你的刀片应该看起来像这样
@forelse ( $activity_types as $activity_type )
<article class="article-feeds mb-4">
<div class="flex ml-4" id="activitiesInformation">
<div class="flex-1">
<div>
<p class="font-bold">{{ $activity_type->activity_type }}</p> for {{ $activity_type->paper->title }}
</div>
</div>
</div>
</article>
@empty
<p class="text-xl font-display">You don't have any activities listed for you</p>
@endforelse
确保您与ActivityType模型中的Paper有关系。