【问题标题】:PhalconPHP: Repeating field collection multiple times and saving to multiple modelsPhalconPHP:多次重复字段收集并保存到多个模型
【发布时间】:2015-02-04 14:59:56
【问题描述】:

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

我需要能够通过一个表单来控制所有这些。所以通常在 PHP 中,字段的名称是这样的:

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

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

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

【问题讨论】:

    标签: php phalcon phalconeye


    【解决方案1】:

    模型到表单就绪数据

    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 数据保存回模型

    看看this example

    验证

    This article 很有帮助。

    【讨论】:

      猜你喜欢
      • 2016-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-13
      • 2020-11-12
      • 1970-01-01
      相关资源
      最近更新 更多