显示多对多关系的结果,并分析结果,无论其ID如何

问题描述 投票:1回答:1

如何显示多对多关系的结果,并将结果分开,无论其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() ;
  }

laravel laravel-blade
1个回答
1
投票

我希望我明白你的想法。你想要的是让所有activity typespaper和每张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有关系。

© www.soinside.com 2019 - 2024. All rights reserved.