Отображать результаты отношений «многие ко многим» и отдельные результаты независимо от их идентификатора - PullRequest
1 голос
/ 01 мая 2019

Как отображать результаты множества отношений и отдельных результатов независимо от их идентификатора?

@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

У меня есть блейд-файл, который отображает действия бумаги, но мне нужно отобразить каждое из нихкак в отдельном фиде активности, независимо от их идентификатора, так как они сгруппированы по их ключу paper_id, я хочу, чтобы он был отделен

В этом примере я хочу, чтобы

Рекомендация для Expedita sit.

Публикация статьи для Expedita sit.

отделена друг от друга, посколькуу них разная активность, но у них одинаковый идентификатор бумаги ..

Кроме того,

это отношение активности типов, я говорю о


  /*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() ;
  }

1 Ответ

1 голос
/ 01 мая 2019

Надеюсь, я понял вашу идею. Вам нужно получить все activity types, относящиеся к paper и каждому activity type, на свою карту.

Для этого из вашего контроллера вы можете передать новую переменную с именем $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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...