Проверка формы CakePhp при наличии двух моделей в двух разных базах данных - PullRequest
2 голосов
/ 29 сентября 2011

У меня нет распространенной проблемы с проверкой формы.

Сначала позвольте мне объяснить часть проблемы: я работаю на сайте cakePhp, этот сайт будет использоваться для продажи продукта покупателю.,Для этого у нас есть две базы данных: одна база данных (база данных A) относительно продуктов, отзывы клиентов, счета (предоставленные ERP) и одна база данных (база данных B) относительно информации, которую веб-сайт должен хранить только для веб-сайта.(пароли пользователей, содержимое корзины, комментарии к продуктам, ...).

Чтобы зарегистрировать ОДНОГО пользователя на нашем сайте, я должен: Создать один «адрес» в базе данных A Создать одного «клиента»"в базе данных A Создайте одного" пользователя "в базе данных B.

Это должно быть только одно действие.

Я на контроллере пользователя, поэтому нет проблем для проверки всех полей«пользователя», но как сделать так, чтобы эта форма проверяла все ограничения, которые у меня есть в моих моделях клиентов и адресов?

Проблема в том, что, поскольку пользователь и клиент не находятся в одной базе данных, я не могу (на самом деле я не уверен в этом, но это кажется логичным из-за автоматического левого соединения) объявляют отношения $ ownTo и $ hasOne между пользователем и клиентом.

Итак, как я могу сделать chЭк из этих ограничений?Большое спасибо

1 Ответ

2 голосов
/ 29 сентября 2011

Вы можете проверить поля вручную.

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

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