gpt4 book ai didi

php - ZF2 多个表连接在一个模型中,从连接表中获取列

转载 作者:行者123 更新时间:2023-11-29 02:25:28 25 4
gpt4 key购买 nike

所以这是我的查询:

public function fetchAd($adID){
$row = $this->tableGateway->select(function(Select $select) use ($adID){
$select->join('adDetails','adDetails.adID = ads.adID',array('*'),'inner');
$select->where(array('ads.adID' => $adID));
});

return $row->current();
}

所以我正在做的是查询ad 表并加入adDetails 表以便我获取某个广告的详细信息,问题是属于我正在查询的模型的实体 AD,它没有 adDetails 表中的列名称(变量);所以它只会返回 AD 表中的列,因为该实体在 exchangeArray()

中没有这些字段

我已尝试扩展 AD 实体以使用 AdDetails 实体,但它现在返回到对象数组但字段为空,因为它不能填充他们。

那么,我应该怎么做才能使模型中的所有列都可用于要连接的表?

我也打算加入其他表。

最佳答案

好的,我解决了这个问题,问题是它会返回一个数组,它不会使用 ORM 样式,但它完成了工作,目前 ZF2 不像 ZF1 那样支持关系;

    use Zend\Db\Sql\Sql,
Zend\Db\Sql\Where;
$sql = new Sql($this->tableGateway->getAdapter());
$select = $sql->select();
$select->from($this->tableGateway->table)
->join('adDetails','adDetails.adID = ads.adID',array('*'),'inner');

$where = new Where();
$where->equalTo('ads.adID', $adID) ;
$select->where($where);

$statement = $sql->prepareStatementForSqlObject($select);
$result = $statement->execute();

return $result->current();

关于php - ZF2 多个表连接在一个模型中,从连接表中获取列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22921584/

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