->selectAs()

->selectAs() -- Build the select component of a query (usually for joins)

Synopsis

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

Description

Auto creates select items based on either the current objects column names, the supplied object, or an array.

This is primarily used in conjunciton with joinAdd, to enable the renaming of columns into a fixed format when they are likely to have naming conflicts (like both tables have an 'id' column).

Sending no arguments to selectAs, will reset the current select (usually removing the default *), and build a select list based on the current objects column names.

Parameter

Note

This function can not be called statically.

Example

Example 26-1. Using selectAs()

<?php       
// ok lets see what is going on..
DB_DataObject::debugLevel(1);       
       
$person = new DataObjects_Person;


// to generate "person.id as id , person.name as name ......."
$person->selectAs();

// to generate a restricted list.. "person.age as age , person.name as name"
$person->selectAs(array('age','name'));

// using another object. 
$car = new DataObjects_Car;

// this is the first car (
$car->use = 'first';


// using the joinadd add the car..
$person->joinAdd($car); 

// now add all the select columsn for the car eg. "car.id as car_id, car.name as car_name ...."
$person->selectAs($car, 'car_%s');


// select only a few columns from the car table.
// note you have to use the table name at the end..
$person->selectAs(array('color','topspeed'), 'car_%s','car');




// now the user can have a second car....
$secondcar = new DataObjects_Car;
$secondcar->use = 'second';

// now since we alreay have one car, the sql statement would get messy 
// so we are joining this as the second car "FROM person INNER JOIN car ..... , car as secondcar WHERE .....
$person->joinAdd($secondcar,'','secondcar'); 

// and we can now add all the columns
// "secondcar.id as secondcar_id, secondcar.name as secondcar_name ........
// note that you must use the last field as the SECONDCAR.ID format uses the 'AS' name, rather than the 
// objects real table name 'car'
$person->selectAs($secondcar, 'secondcar_%s','secondcar');

 

// ok fire of a query...
$person->find();
while ($person->fetch()) {
  ......
}


?>