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.