Zend framework2 zend framework 2教程AbstractTableGateway

Zend framework2 zend framework 2教程AbstractTableGateway,zend-framework2,Zend Framework2,我对Zend框架和php非常陌生 我阅读了Zend Framework 2教程,并尝试使用AbstractTableGateway查询多个表 但在网页上看到以下信息: 提供的选择对象的表名必须与表名匹配 以下是我的部分代码: 类PublicationTable扩展了AbstractTableGateway { } 我知道变量“protected$table”是一个字符串。 那么如何解决这个问题呢? 谢谢你的帮助 EC方法from()采用表名,而不是列列表。使用columns()指定所需的列。我从

我对Zend框架和php非常陌生

我阅读了Zend Framework 2教程,并尝试使用AbstractTableGateway查询多个表

但在网页上看到以下信息:

提供的选择对象的表名必须与表名匹配

以下是我的部分代码:

类PublicationTable扩展了AbstractTableGateway {

}

我知道变量“protected$table”是一个字符串。 那么如何解决这个问题呢? 谢谢你的帮助

EC

方法
from()
采用表名,而不是列列表。使用
columns()
指定所需的列。我从未尝试过从TableGateway进行连接,但如果您正在进行连接,那么TableGateway并不是最好的模式

如果您直接使用DbAdapater,那么类似的方法应该可以工作:

use Zend\Db\Sql\Select,
    Zend\Db\ResultSet\ResultSet;

$select = new Select;
$select->from('publication')
    ->join('author', 'publication.publication_pk = author.publication_fk',
          array('columnnamefromauthortable1', 'columnnamefromauthortable2'));

$statement = $adapter->createStatement();
$select->prepareStatement($adapter, $statement);

$resultSet = new ResultSet();
$resultSet->initialize($statement->execute());

谢谢成功了。我试过这样的方法:$select->from(array('p'=>'vivo_publication'))…加载的页面没有错误。
use Zend\Db\Sql\Select,
    Zend\Db\ResultSet\ResultSet;

$select = new Select;
$select->from('publication')
    ->join('author', 'publication.publication_pk = author.publication_fk',
          array('columnnamefromauthortable1', 'columnnamefromauthortable2'));

$statement = $adapter->createStatement();
$select->prepareStatement($adapter, $statement);

$resultSet = new ResultSet();
$resultSet->initialize($statement->execute());