S'il vous plaît quelqu'un peut-il m'aider avec une requête Doctrine de base? Je viens de scinder une grande table Orders en tables séparées 'Customers' et 'Orders' dans mysql. J'ai maintenant deux tables configuration en tant que telle dans ma demande Codeigniter/Doctrine:Doctrine - Obtenir des données à partir de deux tables avec une requête
<?php
class Orders extends Doctrine_Record {
public function setTableDefinition() {
$this->hasColumn('order_date', 'string', 10);
$this->hasColumn('item_code', 'string', 10);
$this->hasColumn('invoice_number', 'string', 11);
$this->hasColumn('item_name', 'string', 30);
$this->hasColumn('item_type', 'string', 15);
$this->hasColumn('item_size', 'integer', 1);
$this->hasColumn('item_price', 'integer', 3);
$this->hasColumn('item_quantity', 'integer', 3);
$this->hasColumn('item_total_price', 'integer', 5);
$this->hasColumn('item_b_order', 'integer', 1);
$this->hasColumn('order_total_items', 'integer', 5);
$this->hasColumn('order_total', 'integer', 6);
$this->hasColumn('cust_id', 'integer', 4);
$this->hasColumn('hallmark', 'integer', 1);
}
public function setUp() {
// setup the join with the Customers table, linking cust_id in this table with id in Customers table
$this->hasOne('Customers', array(
'local' => 'cust_id',
'foreign' => 'id'
));
$this->setTableName('orders');
}
}
et
<?php
class Customers extends Doctrine_Record {
public function setTableDefinition() {
$this->hasColumn('cust_name_one', 'string', 30);
$this->hasColumn('cust_name_two', 'string', 30);
$this->hasColumn('cust_address', 'string', 50);
$this->hasColumn('cust_country', 'string', 30);
$this->hasColumn('cust_business', 'string', 30);
$this->hasColumn('cust_email', 'string', 30);
$this->hasColumn('cust_phone', 'string', 30);
$this->hasColumn('special_req', 'string', 200);
}
public function setUp() {
$this->hasMany('Orders as Order', array(
'local' => 'id',
'foreign' => 'cust_id'
));
$this->setTableName('customers');
}
}
La requête avant était la suivante:
$q = Doctrine_Query::create()
->select('u.*')
->from('Orders u')
->groupBy('u.invoice_number');
$orders = $q->fetchArray();
$vars['orders'] = $orders;
Maintenant, je fondamentalement veux juste Dites-moi tout dans la table "Commandes" où cust_id dans la table "Orders" correspond au champ "id" dans la table "Customers", et groupez-le par le champ "invoice_number" dans le tableau "Orders".
J'ai recherché la documentation, mais je n'arrive à rien. Toute aide très très appréciée.
Un grand merci,
Matt
Un grand merci Flinsch, vous avez compris parfaitement le problème! – Matt