par
Ganesh » 25 mars 2010, 22:28
Bonjour,
Je suis entrain de me mettre à Symfony et je me heurte à un problème tout simple: comment récupérer les donnée d'une requête utilisant une jointure?
Voici les deux tables concernées:
Code : Tout sélectionner
transaction:
columns:
id: { type: integer(3), primary: true, autoincrement: true }
codeAction: { type: string(4), notnull: true }
dateTransaction: { type: date, notnull: true }
marche: { type: enum, length: 7, values: ['comptant', 'RD'], default: 'RD' }
sens: { type: enum, length: 5, values: ['achat', 'vente'], default: 'achat' }
quantite: { type: integer(2), notnull: true }
prix: { type: float, notnull: true }
fraisCourtage: {type: float, notnull: true }
fraisSRD: { type: float, notnull: true }
fraisProrogation: {type: float, notnull: true }
relations:
action: { local: codeAction, foreign: code, foreignAlias: actions }
options:
collate: utf8_unicode_ci
charset: utf8
position:
columns:
id: { type: integer(3), primary: true, autoincrement: true }
idTransaction: {type: integer(3), notnull: true }
relations:
transaction: { local: idTransaction, foreign: id, foreignAlias: transactions }
options:
collate: utf8_unicode_ci
charset: utf8
Et les morceaux de code qui vont avec:
class positionTable extends Doctrine_Table
{
public function getPosition() {
$query=$this->createQuery('p')
->leftJoin('p.transaction t ON p.idtransaction=t.id');
return $query->execute();
}
}
class portefeuilleActions extends sfActions
{
public function executeIndex(sfWebRequest $request)
{
$this->positions=Doctrine_Core::getTable('position')->getPosition();
}
}
Je n'ai aucun problème pour récupérer les données de la table position par le biais des accesseurs mais pas moyen de mettre la main sur celles de la table transaction.
Bonjour,
Je suis entrain de me mettre à Symfony et je me heurte à un problème tout simple: comment récupérer les donnée d'une requête utilisant une jointure?
Voici les deux tables concernées:
[code]
transaction:
columns:
id: { type: integer(3), primary: true, autoincrement: true }
codeAction: { type: string(4), notnull: true }
dateTransaction: { type: date, notnull: true }
marche: { type: enum, length: 7, values: ['comptant', 'RD'], default: 'RD' }
sens: { type: enum, length: 5, values: ['achat', 'vente'], default: 'achat' }
quantite: { type: integer(2), notnull: true }
prix: { type: float, notnull: true }
fraisCourtage: {type: float, notnull: true }
fraisSRD: { type: float, notnull: true }
fraisProrogation: {type: float, notnull: true }
relations:
action: { local: codeAction, foreign: code, foreignAlias: actions }
options:
collate: utf8_unicode_ci
charset: utf8
position:
columns:
id: { type: integer(3), primary: true, autoincrement: true }
idTransaction: {type: integer(3), notnull: true }
relations:
transaction: { local: idTransaction, foreign: id, foreignAlias: transactions }
options:
collate: utf8_unicode_ci
charset: utf8
[/code]
Et les morceaux de code qui vont avec:
[php]
class positionTable extends Doctrine_Table
{
public function getPosition() {
$query=$this->createQuery('p')
->leftJoin('p.transaction t ON p.idtransaction=t.id');
return $query->execute();
}
}
class portefeuilleActions extends sfActions
{
public function executeIndex(sfWebRequest $request)
{
$this->positions=Doctrine_Core::getTable('position')->getPosition();
}
}
[/php]
Je n'ai aucun problème pour récupérer les données de la table position par le biais des accesseurs mais pas moyen de mettre la main sur celles de la table transaction.