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

发布于 2024-12-07 06:55:22 字数 458 浏览 1 评论 0原文

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

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

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

这只能是一项操作。

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

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

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

I've a not common problem to do a form validation.

First let me explain a part of the problem: I'm doing a cakePhp website, this website will be used to sell product to customer. To do this, we have two database: one database(database A) relative to products, customer references, bills(provided by the ERP), and one database (database B)relative to information that the website has to store only for the website(passwords of users, cart content, comments on a products, ...).

To register ONE user on our website, I've to:
Create one "address" in the database A
Create one "customer" in the database A
Create one "user" in the database B.

This has to be only one action.

I'm on the user controller, so no problem to validate every fields of the "user", but how to make this form validate all constraints I have in my customer and address models?

The problem is that because user and customer are not in the same database, I can't(in fact I'm not sure of that, but it seems to be logic, because of automatic Left join) declare the $belongsTo and $hasOne relationship between user and customer.

So how could I make the check of those constraints?
Thank you very much

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

等你爱我 2024-12-14 06:55:22

您可以手动验证字段。

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

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

You can validate fields manually.

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

if( $this->User->validates() && $this->Customer->validates() && $this->Address->validates() ) {
    // save data
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文