我正在创建一个包含多个子表单的表单。让我详细说明一下:我正在为大学里的一个班级创建一个表单。该类的模型中有多个内容,如"名称"、"大小"等。然而,我需要将学生附加到该类中。学生的模型中只有两个字段:"名称"answers"类型"
我需要能够从一个表单控制所有这些
'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/Forms。
将POST数据保存回型号
看看这个例子。
验证
这篇文章很有帮助。