PhalconPHP:多次重复字段采集并保存到多个模型


PhalconPHP: Repeating field collection multiple times and saving to multiple models

我正在创建一个包含多个子表单的表单。让我详细说明一下:我正在为大学里的一个班级创建一个表单。该类的模型中有多个内容,如"名称"、"大小"等。然而,我需要将学生附加到该类中。学生的模型中只有两个字段:"名称"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数据保存回型号

看看这个例子。

验证

这篇文章很有帮助。