在两个不同的数据库上有两个模型时,CakePhp表单验证

时间:2011-09-29 06:18:57

标签: cakephp model validation multiple-databases

我有一个不常见的问题来进行表单验证。

首先让我解释一下问题的一部分:我正在做一个cakePhp网站,这个网站将用于向客户销售产品。为此,我们有两个数据库:一个数据库(数据库A)相对于产品,客户参考,账单(由ERP提供),一个数据库(数据库B)相对于网站必须仅为网站存储的信息(用户密码,购物车内容,产品评论......)。

要在我们的网站上注册一个用户,我要: 在数据库A中创建一个“地址” 在数据库A中创建一个“客户” 在数据库B中创建一个“用户”。

这只是一个动作。

我在用户控制器上,所以验证“用户”的每个字段都没问题,但是如何使这个表单验证我在客户和地址模型中的所有约束?

问题是因为用户和客户不在同一个数据库中,我不能(事实上我不确定,但它似乎是逻辑,因为自动左连接)声明$ belongsTo和$ hasOne用户和客户之间的关系。

那我怎么能检查那些约束呢? 非常感谢你

1 个答案:

答案 0 :(得分:2)

您可以手动验证字段。

$this->Customer->set( $this->data );
$this->Address->set( $this->data );

if( $this->User->validates() && $this->Customer->validates() && $this->Address->validates() ) {
    // save data
}