简体   繁体   中英

ZF2 use OR in Model

So I'm trying to achieve this query:

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

Here is my model

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;
}

Do you know how can I achieve this? I guess I need to use in my where statements \\Zend\\Db\\Sql\\Predicate\\ but I don't know how.

Solved by addign the following lines:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM