zend-framework2 - zend框架2教程AbstractTableGateway

标签 zend-framework2

我对 Zend Framework 和 php 非常陌生。

我完成了 Zend Framework 2 教程并尝试使用 AbstractTableGateway 来查询多个表。

但在网页上收到以下消息:

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

这是我的代码的一部分:

类 PublicationTable 扩展 AbstractTableGateway {

protected $table = 'publication';

public function fetchAll()
{
    $sql = new Sql($this->adapter);
    $select = $sql->select();
    $select->from(array('p' => 'publication'))
           ->join('author','publication_fk=p.publication_pk');

    $resultSet = $this->selectWith($select);
    return $resultSet;
}


...

}

我知道变量“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());

关于zend-framework2 - zend框架2教程AbstractTableGateway,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12842325/

相关文章:

php - 如何在 zf2 中使用 smtp 发送电子邮件?

unit-testing - phpunit单元测试错误zf2教义

javascript - 在 zend 框架 2 中使用 ajax

zend-framework2 - Zend Framework 2 从布局中获取 Controller 名称

php - 如何在多个类(和模块)上使用 ZF2 的 EventManager?

php - 如何在 zend 中动态设置开放图元标签以进行 Facebook 共享

zend-framework2 - zendframework 2 inputfilter 自定义默认错误信息

php - 具有插入空值的连接列的 Doctrine 2 实体

oauth - 用户的 Apigility 和 oAuth

zend-framework2 - zf2 formFilter 正则表达式 howto