2013-01-23 65 views
0

每3个人在我的应用程序中创建1页。所以每个Page,hasManyUser相关模型和验证

我已经定义了一些用于检查用户信息的验证规则。 (如电子邮件,电话和邮政编码检查器)。但每个页面(所有者)只需要一个电子邮件和电话号码。所以电子邮件和电话只需要第一个用户。 (其他用户不必填写它们,第一个用户必须这样做)

所以,我必须在验证第一个用户数据后删除一些验证规则。但我不知道如何用saveAllsaveAssociated)的方法做到这一点。

回答

0

您可以通过添加

unset($this->User->validate['field_name']);

validates() & save()调用之前跳过某个字段的验证。

+0

我知道,而且我用了很多。但是在这里我们没有'save'方法。它是'saveAll'。 – mrdaliri

+0

如果您使某个字段无效,则调用哪种方法来保存数据并不重要。该字段不会被验证,因为验证规则(对于该字段)不再存在。所以这也适用于'saveAll'。 – noslone

+0

'saveAll',一次验证并保存所有用户数据。所以在验证第一个用户之后,我不能取消设置验证规则。 – mrdaliri

0

我必须通过将第一个用户的电子邮件和电话号码复制到其他用户来管理它(并设置一些变量以保持默认的电子邮件和电话)。然后,验证请求数据。然后恢复2个其他用户的默认值。

欢迎任何其他建议。