Database Zend多对多关系

Database Zend多对多关系,database,zend-framework,many-to-many,Database,Zend Framework,Many To Many,我想从3个表中检索所有数据 用户、属性和用户\属性 所以我决定使用manytomanyRowset。但令我惊讶的是,我从properties和users_properties表中获得了数据,但从users表中没有数据。为什么呢?我需要用户表中的一些列有没有办法告诉manytomanyrowset函数我也需要当前表中的数据 这是我的职责 public function fetchRegisteredProperties() { $userTable = $this->getTabl

我想从3个表中检索所有数据

用户、属性和用户\属性

所以我决定使用manytomanyRowset。但令我惊讶的是,我从properties和users_properties表中获得了数据,但从users表中没有数据。为什么呢?我需要用户表中的一些列有没有办法告诉manytomanyrowset函数我也需要当前表中的数据

这是我的职责

public function fetchRegisteredProperties()
{

    $userTable = $this->getTable();
    require_once APPLICATION_PATH . '/models/DbTable/UsersPropertiesDB.php';
    require_once APPLICATION_PATH . '/models/DbTable/PropertiesDB.php';

    $propertiesRowset = $table->fetchAll();
    $allProperties = array();

    foreach ($propertiesRowset as $row) {
        $propertiesRowset = $row->findManyToManyRowset(
          'Model_DbTable_Properties','Model_DbTable_UsersProperties');
        $allProperties = array_merge($tempArray,$propertiesRowset->toArray()); 
    }

    return $allProperties;
}

感谢您的支持

我在Zend框架中设计并编码了表关系功能

您的问题的答案是否定的,
findManyToManyRowset()
方法只从相关表中获取行,而不会将它们合并到相应的行对象中。原因是ZF中的行对象可以
save()
自身返回数据库,如果添加字段,它将不知道如何处理这些字段

因此,您应该实现一个自定义行对象来保存用户字段和用户属性集合——将用户属性存储为行集对象

然后扩展
\uuuu get()
\uuuu set()
,以便在读取或写入对象属性时知道如何将字段映射到正确的数组中。也就是说,如果试图读取或写入不属于用户行的字段,它将返回到用户属性行集


还可以扩展
save()
,不仅保存当前行,还可以对用户属性行集调用
save()

oh ok cool很有意义。我是zend框架的新手,我习惯了cakePhp处理事情的方式。谢谢你的快速回复!