У меня есть пользователь сущности, который имеет отношение один-ко-многим к вопросам.У вопросов есть связь один ко многим с ответами.Каждая сущность вопросов и ответов имеет свойство, называемое состоянием.
Обычно после выполнения запроса GET платформа API возвращает всех пользователей со всеми вопросами, включая все ответы.Это прекрасно работает!
Теперь я хотел бы реализовать запрос get, который возвращает пользователя со всеми вопросами, имеющими определенное состояние (например, «X»).Вопросы должны включать в себя только ответы с одинаковым состоянием ("X").
Я использовал функцию фильтра (чтобы отфильтровать все ненужные данные)
Поэтому я сгенерировал контроллер с именем GetUserObjectActionкакая следующая функция
public function __invoke(PaginatorInterface $data, Request $request): PaginatorInterface
{
$repo = $this->managerRegistry->getRepository(Question::class);
foreach ($data as $value) {
$q = $value->getQuestions()->filter(function($q1) {
if($q1->getState() === 'a') {
$q1->values = $q1->values->filter(function($a) {
return $a->getState() === 'a';
});
return true;
} else {
return false;
}
return ;
});
$value->setQuestions($int);
}
return $data;
}
Есть ли лучший способ ее реализовать?
Спасибо