2

我正在创建一个包含多个子表单的表单。让我详细说明一下:我正在为大学的一个班级创建一个表格。该课程的模型中有多个内容,例如“名称”、“大小”等。但是,我需要将学生附加到该课程。学生的模型中只有两个字段:“名称”和“类型”

我需要能够从一个表单中控制所有这些。所以通常在 PHP 中,字段的名称类似于:

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

它将以数组的形式收集所有学生的信息,以后可以访问这些信息。在那种形式中,我还需要动态添加学生字段的数量,但我想这可以用 javascript 完成。

我的问题是:如何在 Phalcon 中控制这种行为?我可以使用构建器创建这样的字段吗?我可以指示这些字段是无穷无尽的,即没有特定数量的学生吗?我可以使用验证器验证所有学生的姓名吗?

4

1 回答 1

0

模型到准备好的数据

1)在您的班级模型中,定义与学生模型的关系。

class Class extends \Phalcon\Mvc\Model
{
    public function initialize()
    {
        $this->hasMany('id', 'AppName\Models\Student', 'class_id', array(
           'alias' => 'students'
        ));
    }
}

2)在您的类控制器中实例化类模型并引用别名“学生”。

$class = new Class::findFirst($classId);
$students = $class->students;

$response = array(
    'class' => $class->toArray(),
    'students' => $students->toArray()
);

如果您决定不使用 Javascript 并在 Phalcon 中创建整个表单,请查看Phalcon/Forms

将 POST 数据保存回模型

看看这个例子

验证

这篇文章很有帮助。

于 2015-06-02T08:11:46.153 回答