0

Je suis nouveau sur Zend Framework 2 et je suis en train de coder un forum pour un projet d'école. J'ai une requête que je ne peux pas gérer avec un objet Db Sql Select et tableGateway. Je viens d'utiliser un adaptateur Db et ça marche bien, mais je cherche un moyen de passer ma requête en utilisant un objet Db Sql Select car je devrai utiliser un paginateur plus tard.Sql Query avec Zend Framework 2 tableGateway

Voici ce que j'ai:

public function fetchAll() 
{ 
    $select = $this->adapter->query(
      'SELECT theme.nom AS nom, theme.idTheme AS idTheme, theme.TidAdmin AS TidAdmin, theme.description AS description, users.username, Dnom, date, admin.pseudo AS apseudo 
      FROM theme 
      LEFT join (select DidUsers, Dnom, DidTheme, date from discussion group by date) D ON `DidTheme` = theme.`idTheme` 
      LEFT JOIN users on DidUsers = idUsers 
      LEFT JOIN admin on TidAdmin = idAdmin' 
      ); 
    $statement = $select; 
    $results = $statement->execute(); 
    return iterator_to_array($results); 
} 

Toutes les idées sur la façon dont je peux avoir cette requête exécutée avec Zend \ Db \ Sql \ Select? Merci!

Répondre

0
$subquery = new \Zend\Db\Sql\Select ('discussion'); 
$subquery->group ("date"); 
$subquery->columns (["DidUsers" , "Dnom", "DidTheme", "date"]); 

$query = new \Zend\Db\Sql\Select ('theme'); 
$query->columns (['nom', 'idTheme', 'TidAdmin', 'description']); 
$query->join ($subquery, 'idTheme = DidTheme'); 
$query->join ('users', 'idUsers = DidUsers', ['username']); 
$query->join ('admin', 'idUsers = TidUsers', ['pseudo' => 'apseudo']); 
+0

Fonctionne parfaitement merci beaucoup! – Bradawk