PhalconPHP:多次重复字段收集并保存到多个模型
PhalconPHP: Repeating field collection multiple times and saving to multiple models
我正在创建一个包含多个子表单的表单。让我详细说明一下:我正在为大学里的 class 创建一个表格。 class 的模型中有多个内容,例如 "name"、"size" 等。但是,我需要将学生附加到 class。学生的模型中只有两个字段:"name" 和 "type"
我需要能够从一个表单中控制所有这些。所以通常在 PHP 中,字段的名称类似于:
'name'
'size'
'student[name][]'
'student[type][]'
'student[name][]'
'student[type][]'
这会将所有学生的信息收集到数组中,以后可以访问这些信息。在那种形式下,我还需要动态添加学生字段的数量,但我想这可以用 javascript.
来完成
我的问题是:我如何在 Phalcon 中控制这种行为?我可以使用构建器创建这样的字段吗?我可以指示它这些字段是无止境的,即没有特定数量的学生吗?我可以使用验证器验证所有学生的姓名吗?
模型到准备好的数据
1) 在您的 class 模型中,定义与学生模型的关系。
class Class extends \Phalcon\Mvc\Model
{
public function initialize()
{
$this->hasMany('id', 'AppName\Models\Student', 'class_id', array(
'alias' => 'students'
));
}
}
2) 在您的 class 控制器中实例化 class 模型并引用别名 "students".
$class = new Class::findFirst($classId);
$students = $class->students;
$response = array(
'class' => $class->toArray(),
'students' => $students->toArray()
);
如果您决定不使用 Javascript 并在 Phalcon 中创建整个表单,请查看 Phalcon/Forms。
将 POST 数据保存回模型
看看this example。
验证
This article 很有帮助。
我正在创建一个包含多个子表单的表单。让我详细说明一下:我正在为大学里的 class 创建一个表格。 class 的模型中有多个内容,例如 "name"、"size" 等。但是,我需要将学生附加到 class。学生的模型中只有两个字段:"name" 和 "type"
我需要能够从一个表单中控制所有这些。所以通常在 PHP 中,字段的名称类似于:
'name'
'size'
'student[name][]'
'student[type][]'
'student[name][]'
'student[type][]'
这会将所有学生的信息收集到数组中,以后可以访问这些信息。在那种形式下,我还需要动态添加学生字段的数量,但我想这可以用 javascript.
来完成我的问题是:我如何在 Phalcon 中控制这种行为?我可以使用构建器创建这样的字段吗?我可以指示它这些字段是无止境的,即没有特定数量的学生吗?我可以使用验证器验证所有学生的姓名吗?
模型到准备好的数据
1) 在您的 class 模型中,定义与学生模型的关系。
class Class extends \Phalcon\Mvc\Model
{
public function initialize()
{
$this->hasMany('id', 'AppName\Models\Student', 'class_id', array(
'alias' => 'students'
));
}
}
2) 在您的 class 控制器中实例化 class 模型并引用别名 "students".
$class = new Class::findFirst($classId);
$students = $class->students;
$response = array(
'class' => $class->toArray(),
'students' => $students->toArray()
);
如果您决定不使用 Javascript 并在 Phalcon 中创建整个表单,请查看 Phalcon/Forms。
将 POST 数据保存回模型
看看this example。
验证
This article 很有帮助。