Я создаю форму, в которой есть несколько подформ. Позвольте мне уточнить: я создаю форму для класса в университете. Этот класс имеет несколько элементов в своей модели, таких как «имя», «размер» и т. Д. Однако мне нужно присоединить учащихся к этому классу. Студенты имеют только два поля в своей модели: «имя» и «тип»
Мне нужно иметь возможность контролировать все это из одной формы. Поэтому обычно в PHP имена полей будут выглядеть примерно так:
'name'
'size'
'student[name][]'
'student[type][]'
'student[name][]'
'student[type][]'
Который будет собирать всю информацию о студентах в массивах, которые могут быть доступны позже. В этой форме мне также нужно будет динамически добавлять количество полей учеников, но я думаю, что это можно сделать с помощью javascript.
Мои вопросы: Как я могу контролировать такое поведение в Phalcon? Могу ли я использовать конструктор для создания таких полей, и могу ли я дать ему указание, что эти поля бесконечны, то есть нет определенного количества студентов? Смогу ли я проверить все имена учеников, используя валидатор?
Модель для готовых данных
1) В вашей модели класса определите отношение к модели студента.
class Class extends \Phalcon\Mvc\Model
{
public function initialize()
{
$this->hasMany('id', 'AppName\Models\Student', 'class_id', array(
'alias' => 'students'
));
}
}
2) В вашем контроллере класса создайте экземпляр модели класса и укажите псевдоним «Students».
$class = new Class::findFirst($classId);
$students = $class->students;
$response = array(
'class' => $class->toArray(),
'students' => $students->toArray()
);
Если вы решили не использовать Javascript и создать целую форму в Phalcon, взгляните на Phalcon / Формы.
Сохранение данных POST обратно в модель
Взгляни на этот пример.
Проверка
Эта статья полезно
Других решений пока нет …