Ну если топик выведется как Array, то наверное надо подумать, головным мозгом, и сделать так, чтобы не выводилось слово Array, а выводилось название топика?
тип исключения - это и есть тип ошибки
то есть если мы ловим NonUniqueValueException ты мы в try уже знаем, какой это тип
если ловим DataValidationExcepton, то через instanceof проверяем по очереди
Хотя возможно в ларе всё это уже есть. Я здесь описываю общий принцип.
кто мешает "foreach написать сначала" для топика, а потом выводить вопрос и ответ
я честно не понимаю этих затруднений.
какая проблема поместить одну часть кода над другой?
да, обернуть в трай, который ловит только NonUniqueValueException.
ну или ловит все DataValidationExcepton, чтобы превратить их в пользовательские ошибки.
если другой контроллер знает, как обработать NonUniqueValueException, то в нем тоже обернуть в трай
если не знает, то не оборачивать
какая структура у исходного массива? реального, а не этого огрызка
под одним топиком может быть больше одного вопроса? если может, то почему этого нет в вопросе?
это какой-то непонятный говнокод
зачем два раза перебирать одно и то же?
зачем вложенный форич?
зачем весь этот зоопарк: $qan1 = []; $qan2 = []; $qan3 = []; $qan5 = '';
почему нельзя все вывести просто в одном цикле?
qna убивают халтурные ответы на невнятные вопросы
надо сначала вытянуть у автора нормальный вопрос, а потом написать нормальный ответ
не из двух строчек после которых 50 комментариев "ой, я не то имел в виду!"
"я никаких книг не читал, читал про ооп и чистый код."
оно и видно, что книг не читал, а про ооп и чистый код листал, да не осилил
единственный метод, который и проверяет, и добавляет, и в базу лезет - от это у нас просто эталон чистого кода. Мартин, умилившись, за такое поцелует в пупочек.
Сложно сказать. Судя по коду тоже говнари те ещё, но хотя бы застряли в нулевых, а не в прошлом веке.
Ну и выглядит их и документация, и код и сайт куда более профессионально, а не как у фрикадессы - ка будто три студента на коленке за два вечера склепали за еду