Mysql Zend Framework 2 can';无法从联接表中获取字段

Mysql Zend Framework 2 can';无法从联接表中获取字段,mysql,zend-framework,join,zend-framework2,Mysql,Zend Framework,Join,Zend Framework2,我无法从联接表中获取字段。这是我的情况,我有两个名为“查询”和“区域”的表,由两个控制器QueryCOntroller和RegionController处理。在QueryController中,我尝试将“查询”连接到“区域”。获取视图文件中“查询”的“区域”名称,但无法获取所需字段 public function fetchMine($myid) { $sql = new Sql( $this->tableGateway->adapter ) ; $where = n

我无法从联接表中获取字段。这是我的情况,我有两个名为“查询”和“区域”的表,由两个控制器QueryCOntroller和RegionController处理。在QueryController中,我尝试将“查询”连接到“区域”。获取视图文件中“查询”的“区域”名称,但无法获取所需字段

public function fetchMine($myid)
{
    $sql = new Sql( $this->tableGateway->adapter ) ;
    $where = new Where() ;

    $where->equalTo('agent_id', $myid) ;

    $select = $sql->select() ;
    $select -> from ( $this->tableGateway->getTable() )
    -> join ( 'region' , 'query.agent_id = region.id')
    ->columns(array('*'))
    -> where( $where ) ;

    $resultSet = $this->tableGateway->selectWith($select);
    return $resultSet;
}
在my Module.php中,getServiceConfig()

尝试:

然后必须从
Region
扩展
Query
,以获取Query和Region的所有属性, Query.php:

use Management\Model\Region;
class Query extends Region
{
    //...
}

查询类必须具有与区域表中的区域名称同名的属性

如果要使用其他名称,只需使用sql别名


如果您想从region表中添加更多属性,则必须将它们全部添加到查询类中

谢谢您的回答:我再也看不到错误了,但在region name字段中仍然没有任何结果!你能告诉我如何转储$resultSet(我正在使用Eclipse)吗?你能插入原型吗?你确定原型和表格匹配吗?原型?!对不起,我听不懂。我是ZF2的新手。模型中的每个表都有2个类。例如:Region和RegionTable。区域是原型。在原型中定义表列。是的,我确信原型和表匹配。实际上,我回显了sql查询,并直接在mysql上运行它,得到了正确的结果。当我转储$resultSet时,我得到所有查询属性,没有区域属性!没有一个这正常吗?!!谢谢你的回答。我为什么要这么做?实际上,我回显了sql查询,并直接在mysql上运行它,得到了正确的结果。当我转储$resultSet时,我得到所有查询属性,没有区域属性!没有一个欢迎光临。因为查询类没有区域属性,并且您在此语句中选择了查询类作为原型($resultSetPrototype->setArrayObjectPrototype(new Query());),所以结果集包含一组查询对象(没有区域属性)
public function fetchMine($myid)
{       
    $select = new Select ();
    $select->from ( $this->tableGateway->getTable() );
    $select->join ( 'region' , 'query.agent_id = region.id' , Select::SQL_STAR , Select::JOIN_LEFT )
    $select->where( array( 'agent_id'=>$myid ) );

    $resultSet = $this->tableGateway->selectWith($select);
    return $resultSet;
}
use Management\Model\Region;
class Query extends Region
{
    //...
}