php - ZF2 在模型中使用 OR

标签 php mysql zend-framework2

所以我试图实现这个查询:

SELECT `userMessages`.*, `users`.`username` AS `username` FROM `userMessages`
INNER JOIN `users` ON `users`.`id` = `userMessages`.`FROMuID` WHERE
userMessages.FROMuID = 41 AND userMessages.TOuID = 40 
OR userMessages.FROMuID = 40 AND userMessages.TOuID = 41 ORDER BY `userMessages`.`messageTime` DESC

这是我的模型

public function getUserMessages($uID,$fromUID,$paginated = true){
    if($paginated) {
        // create a new Select object for the table ads
        $select = new Select($this->tableGateway->table);
        $select->join('users','users.id = userMessages.FROMuID',array('username'),'inner');
        $select->where("userMessages.FROMuID = $fromUID");
        $select->where("userMessages.TOuID = $uID");

        $select->order('userMessages.messageTime DESC');
        // create a new result set based on the Ads entity
        $resultSetPrototype = new ResultSet();
        // create a new pagination adapter object
        $paginatorAdapter = new DbSelect(
            // our configured select object
            $select,
            // the adapter to run it against
            $this->tableGateway->getAdapter()
            //,
            // the result set to hydrate
            //$resultSetPrototype
            );
        $paginator = new Paginator($paginatorAdapter);
        return $paginator;
    }
    $resultSet = $this->tableGateway->select();
    return $resultSet;
}

你知道我怎样才能实现这个目标吗?我想我需要在 where 语句中使用 \Zend\Db\Sql\Predicate\ 但我不知道如何使用。

最佳答案

通过添加以下行解决:

        $select->where
            ->equalTo("userMessages.FROMuID",$fromUID)
            ->equalTo("userMessages.TOuID",$uID)
        ->or
            ->equalTo('userMessages.FROMuID', $uID)
            ->equalTo('userMessages.TOuID', $fromUID);

关于php - ZF2 在模型中使用 OR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23289875/

相关文章:

propel - 集成 Zend Framework 2 和 Propel

php - 返回 queryfetch 并输出特定行

php - 将 Wordpress 从 Http 转移到 https

MySQL 在查询中使用 LIKE

php - 比较 php 和 sql 的时间

php - 存储过程 zend framework 2.2 tablegateway 中的多重选择问题

php - Zend 应用程序在一台机器上运行但在另一台机器上运行不正常的原因可能是什么?

PHP 扩展 :mysql in phpmyadmin

php - 我的数据库无法使用 RSA 加密

mysql - 搜索以排除 MySQL 中的 html 标签