PhalconPHP: многократное повторение сбора полей и сохранение в нескольких моделях

Я создаю форму, в которой есть несколько подформ. Позвольте мне уточнить: я создаю форму для класса в университете. Этот класс имеет несколько элементов в своей модели, таких как «имя», «размер» и т. Д. Однако мне нужно присоединить учащихся к этому классу. Студенты имеют только два поля в своей модели: «имя» и «тип»

Мне нужно иметь возможность контролировать все это из одной формы. Поэтому обычно в PHP имена полей будут выглядеть примерно так:

'name'
'size'
'student[name][]'
'student[type][]'
'student[name][]'
'student[type][]'

Который будет собирать всю информацию о студентах в массивах, которые могут быть доступны позже. В этой форме мне также нужно будет динамически добавлять количество полей учеников, но я думаю, что это можно сделать с помощью javascript.

Мои вопросы: Как я могу контролировать такое поведение в Phalcon? Могу ли я использовать конструктор для создания таких полей, и могу ли я дать ему указание, что эти поля бесконечны, то есть нет определенного количества студентов? Смогу ли я проверить все имена учеников, используя валидатор?

2

Решение

Модель для готовых данных

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 обратно в модель

Взгляни на этот пример.

Проверка

Эта статья полезно

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]