gpt4 book ai didi

zend-framework2 - zend framework 2 教程 AbstractTableGateway

转载 作者:行者123 更新时间:2023-12-02 05:27:42 24 4
gpt4 key购买 nike

我对 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”是一个字符串。那么如何解决这个问题呢?感谢您的帮助!

电子商务

最佳答案

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 framework 2 教程 AbstractTableGateway,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12842325/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com