当前位置:  开发笔记 > 编程语言 > 正文

CakePHP多模型视图

如何解决《CakePHP多模型视图》经验,为你挑选了1个好方法。

我正在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的联系人

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



1> 小智..:

如果您使用的是最新的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');

然后在您的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');
}

...

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

var $hasOne = array('Address', 'Contact');

希望有所帮助!

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

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有