PHPEye开源社区 » Zend Framework 使用讨论 » 关于zf的数据库关联
《Programming PHP》第二版上市
2007-5-16 00:05 wanghaozi
关于zf的数据库关联

有2个表 1个是users表 存储用户信息 另外一个是部门表department 通过part_id关联 part_id是department表的主键
Users 表对象
[code]
<?php

class Users extends Zend_Db_Table_Abstract {
        
        protected $_name = 'users';
        protected $_primary = 'user_id';
        protected $_referenceMap = array(
                'department' => array(
                                'columns' => array('part_id'),
                                'refTableClass' => 'Department',
                                'refColumns' => array('part_id')
                        )
                );
}
?>
[/code]

Department表对象
[code]
<?php

class Department extends Zend_Db_Table_Abstract{
        
        protected $_name = 'department';
        protected $_primary = 'part_id';
        
        protected $_dependentTables = array('users');
}
?>
[/code]

下面是获取数据代码
[code]
function getData(){
$table=new Users();
$rows=$table->fetchAll();
$refrows=array();
foreach($rows as $row){
$refrows[]=$row->findParentRow('department');
return 2个对象合并 不知道改怎么做 不知道有没有相关合适的做法 因为要assign到模版所以需要合并
}[/code]

2007-5-16 08:59 Haohappy
先用toArray()转换成数组再用array_merge()合并数组吧。
不过assign到模板为什么要合并呢。。

2007-5-16 10:00 wanghaozi
[url]http://www.phpchina.com/bbs/thread-25321-1-1.html[/url]
phpchina里面我也贴了一份发现他们也有这样的问题但是回答似乎是另外一种途径不知道是否违背了zf的意愿

2007-5-27 14:46 wps2000
ZF的Zend_Db这一块现在改变的还是比较方便了
唯一需要注意的只是是其中 有些 和 手册上说的 不太一样而已 ,find方法返回的也是 Zend_Db_Table_Rowset 对象而非 Zend_Db_Table_Row  对象,终于统一了,但是手册上没修改

貌似那种魔术方法更方便一些,我一直都那么写,真爽

页: [1]
查看完整版本: 关于zf的数据库关联


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.