CakePHP多模型视图

Fer*_*cal 5 entity-relationship model-driven cakephp cakephp-1.2

我正在CakePHP中创建一个网站,我对它有点新意.我找不到这方面的好资源,所以你去了:

我有注册用户三个表结构:Users,AddressesContacts.我必须使用所有三个表的信息构建一个视图,如:

Full Name:         [          ] (from Users)
Shipping Address:  [          ] (from Address)
Mobile Phone:      [          ] (from Contact)
e-Mail Address:    [          ] (from Contact)

处理这种情况的最佳方法是什么?特别是为了储蓄.创建一个新模型来表示这个,它将拥有一个save()方法本身(也许是数据库中的sql视图)创建一个Controller来处理这个视图的binds或unbinds信息

我仍然想知道我将如何处理两个联系人,因为他们将是两个不同INSERT的联系人

我可以挖掘的任何暗示或资源都会很高兴.

小智 10

如果您使用的是最新的1.2代码,请查看api中的Model :: saveAll

例如.您的视图可能如下所示:

echo $form->create('User', array('action' => 'add');
echo $form->input('User.name');
echo $form->input('Address.line_1');
echo $form->input('Contact.tel');
echo $form->end('Save');
Run Code Online (Sandbox Code Playgroud)

然后在您的Users控制器添加方法中,您将拥有以下内容:

...

if($this->User->saveAll($this->data)) {
 $this->Session->setFlash('Save Successful');
 $this->redirect(array('action' => 'index'));
} else {
 $this->Session->setFlash('Please review the form for errors');
}

...
Run Code Online (Sandbox Code Playgroud)

在您的用户模型中,您将需要以下内容:

var $hasOne = array('Address', 'Contact');
Run Code Online (Sandbox Code Playgroud)

希望有所帮助!

http://api.cakephp.org/class_model.html#49f295217028004b5a723caf086a86b1