Мне нужно создать массив, где необходимо хранить информацию о конкретной регистрации в конференции. Необходимо хранить:
- название конференции
- название типа регистрации и цена
- также в массиве необходимо хранить количество каждого типа регистрации для конкретной регистрации. Количество можно получить с помощью таблицы участников, поскольку структура таблицы участников выглядит следующим образом: таблица участников: id, registration_id, registration_type_id. Таким образом, можно подсчитать для конкретного регистрационного идентификатора, сколько регистрационных_идентификаторов существует для этой регистрации.
Итак, необходимо выполнить запрос, включающий 3 таблицы регистрации, конференцию и участников, поэтому запрос должен быть таким, как показано ниже, и порядок должен быть «conference.registrationTypes.participants» из-за модельных отношений, верно?
$registrationTypeDetails = Registration::with('conference.registrationTypes
.participants')->find($registrationID);
Тогда этот foreach ниже хранит в $type_counts
количество каждого типа регистрации, и это работает $type_counts
показывает:
array:2 [▼
"general" => 2
"plus" => 1
]
Код:
$type_counts = [];
foreach ($registrationTypeDetails->participants as $p) {
$name = $p->registration_type->name;
if (!isset($type_counts[$name])) {
$type_counts[$name] = 0;
}
$type_counts[$name]++;
}
Но я не понимаю, как $ type_counts показывает, как работают отношения, чтобы получить такой результат, потому что dd($registrationTypeDetails)
показывает, как показано ниже.
$registrationTypeDetails->participants
показывает, как показано ниже, отношения пустые, поэтому я не понимаю, как "$p->registration_type->name
" показывает имя типа регистрации.
Collection {#335 ▼
#items: array:2 [▼
0 => Participant {#350 ▼
#relations: []
}
1 => Participant {#343 ▼
#relations: []
}
]
}
Вы понимаете, как "$name = $p->registration_type->name;
" в foreach получает правильное имя типа регистрации?
Также $registrationTypeDetails
показывает:
Registration {#334 ▼
#relations: array:1 [▼
"conference" => Conference {#342 ▼
#relations: array:1 [▼
"registrationTypes" => Collection {#346 ▼
#items: array:2 [▼
0 => RegistrationType {#349 ▼
#relations: array:1 [▼
"participants" => Collection {#514 ▶}
]
}
1 => RegistrationType {#351 ▼
#relations: array:1 [▼
"participants" => Collection {#348 ▶}
]
}
]
}
]
}
]
}