->selectAs()

->selectAs() – Construit le composant sélectionné d'une requête (habituellement, pour une jointure)

Synopsis

void $DB_DataObject->selectAs ( object | array $columns_or_object , string $format , string $table_name )

Description

Création automatique d'éléments basés sur soit les noms des colonnes des objets courants, soit de l'objet fourni, soit d'un tableau.

Cette méthode est utilisée en conjonction avec joinAdd, afin de permettre le renommage des colonnes, dans un format fixe, lors des conflits de nommage (par exemple, lorsque les tables ont toutes une colonne 'id').

Le fait de ne fournir aucun argument à selectAs effacera la sélection courante (habituellement, efface le caractères par défaut *) et construira une liste de sélection basée sur les noms des colonnes des objets courants.

Parameter

  • object | array $column_or_object - un objet de données ou un tableau de noms de colonnes

  • string $format - le format des colonnes à afficher, en utilisant le format sprintf, le %s est remplacé par le nom de la colonne, donc, car_%s résultera en la génération sql 'car.name as car_name'.

  • string $tableName - ceci est utilisé soit lorsque un tableau est fourni en tant que premier argument, soit lorsque vous joingez une table 'as' un atre nom

Note

This function can not be called statically.

Example

Exemple avec selectAs()

<?php
DB_DataObject
::debugLevel(1);

$person = new DataObjects_Person;

// pour générer "person.id as id , person.name as name ......."
$person->selectAs();

// pour générer une liste restreinte... "person.age as age , person.name as name"
$person->selectAs(array('age','name'));

// utilisation d'un autre objet.
$car = new DataObjects_Car;

// c'est la première voiture
$car->use 'first';

// utilisation de joinAdd pour ajouter la voiture..
$person->joinAdd($car); 

// maintenant, ajout de toutes les colonnes sélectionnées pour la voiture eg. "car.id as car_id, car.name as car_name ...."
$person->selectAs($car'car_%s');

// sélection uniquement de quelques colonnes depuis la table des voitures.
// notez que vous devez utiliser le nom de la table à la fin..
$person->selectAs(array('color','topspeed'), 'car_%s','car');

// maintenant, l'utilisateur peut avoir une seconde voiture....
$secondcar = new DataObjects_Car;
$secondcar->use 'second';

// maintenant que nous avons une voiture...
// donc, nous joingnons la seconde voiture "FROM person INNER JOIN car ..... , car as secondcar WHERE .....
$person->joinAdd($secondcar,'','secondcar'); 

// et maintenant, nous pouvons ajouter toutes les colonnes
// "secondcar.id as secondcar_id, secondcar.name as secondcar_name ........
// notez que vous devez utiliser le dernier champ sous le format SECONDCAR.ID en utilisant le 'AS' name, plutôt que
// le vrai nom de la table 'car' de l'objet
$person->selectAs($secondcar'secondcar_%s','secondcar');

// Ok, exécutons la requête...
$person->find();
while (
$person->fetch()) {
   ......
}

?>
Charge des objets relatifs (Previous) Ajout un autre objet de données pour construire une requête de jointure (Next)
Last updated: Sun, 29 Aug 2010 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

Note by: user@example.com
To have columns prefixed for primary table :
$do->selectAs(null, 'prefix_%s');