developer.jelix.org is not used any more and exists only for history. Post new tickets on the Github account.
developer.jelix.org n'est plus utilisée, et existe uniquement pour son historique. Postez les nouveaux tickets sur le compte github.

Opened 14 years ago

Closed 14 years ago

Last modified 14 years ago

#378 closed enhancement (duplicate)

un <groupby> dans une methode select de dao serait intéressante

Reported by: chris Owned by:
Priority: normal Milestone:
Component: jelix:dao Version: 1.0 beta 3.1
Severity: normal Keywords:
Cc: Blocked By:
Blocking: Documentation needed:
Hosting Provider: Php version:

Description

Je trouve qu'il pourrait être intéressant/utile de pouvoir préciser un GROUP BY dans une méthode select de dao.

Juste pour éviter d'avoir à écrire entièrement une methode type="php" juste pour ça. Ex :

		<method type="php" name="findCardsByFourn">
			<parameter name="user" />
			<parameter name="fourn" />
			<body><![CDATA[
				$sql = $this->_selectClause.$this->_fromClause.$this->_whereClause;
				$sql .= ($this->_whereClause == ''?' WHERE ':' AND ');
				$sql .= " commande.statut = 'card' AND";
				$sql .= " commande.fournisseur_FOU_id = '".$fourn."' AND";
				$sql .= " commande.user_USR_login = '".$user."'";
 				$sql .= ' GROUP BY item_name';
				$sql .= ' ORDER BY date_card DESC';
				$rs = $this->_conn->query($sql);
				$rs->setFetchMode(8,$this->_DaoRecordClassName);
				return $rs;
			]]></body> 
		</method>

alors que ça devrait pouvoir s'écrire (notez le conditionnel) :

		<method name="findCardsByFourn" type="select">
			<parameter name="user" />
			<parameter name="fourn" />
			<conditions>
				<eq property="user" expr="$user" />
				<eq property="fourn" expr="$fourn" />
			</conditions>
			<order>
				<orderitem property="date_card" way="desc" />
			</order>
			<groupby field="item_name"/>
		</method>

Ce n'est pas plus court, mais c'est plus lisible, plus dans l'esprit, et cela permet d'utiliser les alias.

Par contre, je ne sais pas du tout ce que cela engendre côté devel, ni même si c'est envisageable.

Change History (2)

comment:1 Changed 14 years ago by laurentj

  • Resolution set to duplicate
  • Status changed from new to closed

Déjà implémenté dans le trunk (attribut groupby). voir ticket #1.

comment:2 Changed 14 years ago by chris

Ah, et bien personne sur IRC n'était au courant. On m'a même dit que ça serait très difficile à faire. Et puis surtout, je n'en ai pas trouvé référence dans la doc.

Merci en tout cas.

Note: See TracTickets for help on using tickets.