Да.У вас есть пара вещей, которые мешают этому работать.
Во-первых, это не проблема кода - у вас просто нет никаких опций для объекта.Код
@if($customQuestion->hasOptions())
завершается ошибкой, так как к customQuestion не прикреплены параметры.Таким образом, код для полей ввода никогда не вводится.Создайте тестовый объект и прикрепите параметры точно.Это может или не может работать, но это приведет вас к следующему шагу, чтобы увидеть, работает ли функция getHtmlInput()
.
На этой ноте установленная скрипка показывает, что функция getHtmlInput()
либо отсутствует какой-либо код, либо в объекте отсутствует параметр типа.Похоже, что функция вводит опции для поля выбора, но без тега выбора.Вам нужно инициализировать выбор в вашей функции (добавить в функцию нужные теги HTML <select></select>
).Я вижу, вы договорились об этом с помощью последнего параметра метода, $customtype=false
, но, похоже, это также не установлено , входящее в функцию.Если вы посмотрите на скрипку, мы увидим:
<label for="participant_question">Select menu question</label>
<option value="opt1"></option><option value="opt1">
<select>
никогда не вводится.Я не думаю, что ваш код слишком далек (хотя я не знаю, как опции попали в скрипку, если не было ни одной, чтобы пройти проверку if), я думаю, вам нужно протестировать свои объекты, чтобы увидеть, что они включают -- убедитесь, что у них есть варианты, убедитесь, что у них есть $customtype
и что оно установлено в качестве выбора для первого раунда.Если объект customQuestion имеет правильные параметры, это позволит вам правильно выполнить тестирование.