1

这是场景(一个非常常见的场景):

  • 团队报名表。
  • 一个团队可以有多个成员,因此用户可以添加多个成员。
  • 至少应插入一名成员。

应允许用户:

  • A) 填写团队详细信息(名称、徽标等);
  • B) 如果某些字段不正确,则会收到内联通知。
  • C) 选择插入团队或通过发布将其公开,并查看每个选择的相关验证规则。
  • D) 添加更多成员(通过添加成员按钮),这将显示更多要填写的与另一个模型相关的表单字段。(用户也可以删除这些字段);

我正在考虑遵循以下步骤,但是,在这样做之前,我想请教那些在这些主题上比我更有经验的人。

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

我们要:

为一个)

  • CActiveForm使用;渲染表单

对于 B)

  • 我们需要设置enableClientValidationtrue;
  • 我们需要render both models一个单一的形式;

对于 C)

  • 创建验证模型scenarios
  • 创建一个复选框,在选中时将方案更改为插入或发布
    • Ajax form validation应该enable也是;

对于 D)

  • 单击时,我们需要显示/隐藏其他字段集。
  • 我们需要tabular input为会员收集。
  • 我们需要使用 renderPartial

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

4

1 回答 1

3

如果你想展示 Yii 框架的全部潜力,你宁愿扩展 CFormModel 以包含你想集成到单个表单中的各种模型。

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

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

我希望它有所帮助。干杯。

于 2012-09-15T11:39:01.823 回答