检查使用Yii构建通用多模型表单的步骤

检查使用Yii构建通用多模型表单的步骤,yii,Yii,下面是一个场景(非常常见): 团队登记表 一个团队可以有多个成员,因此用户可以添加多个成员 应至少插入一个成员 应允许用户: A) 填写团队详细信息(姓名、徽标等) B) 如果某些字段不正确,将收到内联通知 C) 选择插入团队或通过发布团队使其公开,并查看每个选项的相关验证规则 D) 添加更多成员(通过“添加成员”按钮),该按钮将显示与另一个模型相关的更多要填写的表单字段。(用户也可以删除这些字段) 我正在考虑以下步骤,在这样做之前,但是,我想请那些比我更有经验的人看看这些主题 您能否验

下面是一个场景(非常常见):

  • 团队登记表
  • 一个团队可以有多个成员,因此用户可以添加多个成员
  • 应至少插入一个成员
应允许用户:

  • A) 填写团队详细信息(姓名、徽标等)
  • B) 如果某些字段不正确,将收到内联通知
  • C) 选择插入团队或通过发布团队使其公开,并查看每个选项的相关验证规则
  • D) 添加更多成员(通过“添加成员”按钮),该按钮将显示与另一个模型相关的更多要填写的表单字段。(用户也可以删除这些字段)
我正在考虑以下步骤,在这样做之前,但是,我想请那些比我更有经验的人看看这些主题

您能否验证上述步骤并指出可能的重要缺失点

我们需要:

对于A)

  • 使用
    CActiveForm
    呈现表单
用于B)

  • 我们需要将
    enableClientValidation
    设置为
    true
  • 我们需要
    在一个表单上呈现两个模型
对于C)

  • 创建验证模型
    方案
  • 创建一个复选框,该复选框将在选中时将场景更改为插入或发布
    • Ajax表单验证
      也应该是
      启用
用于D)

  • 单击后,我们需要显示/隐藏其他字段集
  • 我们需要为会员收集
    表格输入
  • 我们需要使用renderPartial

在开始使用Yii编写代码之前,我是否遗漏了一些重要的东西?你会使用不同的步骤吗?如果是这样的话,您能与我们分享吗?

如果您想展示Yii框架的全部潜力,您宁愿扩展CFormModel,将您想要集成到单个表单中的各种模型包括在内

为什么??因为您想要使用的CActiveForm类被认为与单个模型一起工作。否则,您必须包含多个表单,每个模型一个表单,在用户提交创建操作时,找到一种方法(通过Javascript)一次性提交所有表单,并在服务器端连接它们

另一种简单的方法是拆分流程,让用户首先使用带有CActiveForm的团队模型创建团队,然后在创建团队后,将用户重定向到
Team/view/1
,并为成员数据呈现表格形式,再次使用带有CActiveForm的单个模型。如果您想确保每个团队至少存在一个成员,您可以将其保存在团队模型中,例如team.leader\u member

我希望有帮助。干杯