Почему имя участника не появляется? - PullRequest
0 голосов
/ 02 июля 2018

У меня есть запрос в getRegistrationInfo (), чтобы получить подробную информацию о регистрации в конференции, поэтому можно показать элемент списка для каждого участника, связанного с регистрацией.

Например, если пользователь Джон зарегистрировал его и его коллегу Джейка в конференции «тестовая конференция», оба в типе регистрации «общий», я хочу показать два элемента списка, например:

Conference Name: test conference
Registration Type: general
Participant: Jake

Conference Name: test conference
Registration Type: general
Participant: John

Работает для имени конференции и имени типа регистрации, но для имени участника не работает, появляется сообщение «Попытка получить свойство необъекта» с помощью «{{$registrationType->participants->participant->name}}».

Знаете ли вы, где проблема?

Метод getRegistrationInfo ():

 public function getRegistrationInfo($regID)
    {
         $registration = Registration::with('conference.registrationTypes.participants')
        ->find($regID);

        $pdf = PDF::loadView('pdf.registration', compact('registration'));
        return $pdf->download('info.pdf');
    }

Тогда в представлении:

@foreach($registration->conference->registrationTypes as $registrationType)
    <li>
        <div class="wrapper">
            <div class="conference-title">
                <strong>Conference</strong><br> <span>{{$registration->conference->name}}</span>
            </div>
            <div class="conference-regtype">
                <div>
                    <strong>Registration Type </strong><br>
                    <span>{{$registrationType->name}}</span>
                </div>
            </div>

            <div class="conference-participant">
                <strong>Participant</strong><br>
                <span>{{$registrationType->participants->participant->name}}</span>
            </div>
        </div>
    </li>
@endforeach

Вывод $ registration в методе getRegistrationInfo ():

Registration {#313 ▼
  #relations: array:1 [▼
    "conference" => Conference {#318 ▼
      #relations: array:1 [▼
        "registrationTypes" => Collection {#319 ▼
          #items: array:1 [▼
            0 => RegistrationType {#324 ▼
              #relations: array:1 [▼
                "participants" => Collection {#325 ▼
                  #items: array:2 [▼
                    0 => Participant {#331 ▼
                      #relations: []
                    }
                    1 => Participant {#333 ▼
                      #relations: []
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}

Выходные данные $ registrationType:

RegistrationType {#324 ▼
  #relations: array:1 [▼
    "participants" => Collection {#325 ▼
      #items: array:2 [▼
        0 => Participant {#331 ▼
          #fillable: array:4 [▼
            0 => "name"
            1 => "surname"
            2 => "registration_id"
            3 => "registration_type_id"
          ]
        }
        1 => Participant {#333 ▼
          #fillable: array:4 [▼
            0 => "name"
            1 => "surname"
            2 => "registration_id"
            3 => "registration_type_id"
          ]
        }
      ]
    }
  ]
}

1 Ответ

0 голосов
/ 02 июля 2018

Ваш вывод должен быть следующим:

  @foreach($registration->conference->registrationTypes as $registrationType)
    @foreach($registrationType->participants as $participant)
      <li>
          <div class="wrapper">
              <div class="conference-title">
                  <strong>Conference</strong><br> <span>{{ $registrationType->conference->name }}</span>
              </div>
              <div class="conference-regtype">
                  <div>
                      <strong>Registration Type </strong><br>
                      <span>{{ $registrationType->name }}</span>
                  </div>
              </div>  
              <div class="conference-participant">
                  <strong>Participant</strong><br>
                  <span>{{$participant->name}}</span>
              </div>
          </div>
      </li>
    @endforeach
  @endforeach

Возможно, вам придется создать или настроить отношения с моделями, участвующими в операции.

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