->selectAs()

->selectAs() -- クエリの取得 コンポーネントを構築する (通常は結合のため)

概要

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

説明

現在のオブジェクトのカラム名、提供されたオブジェクトあるいは配列に基づいた 取得アイテムを自動生成します。

これは、カラム名の衝突を起こしている時 (両方の表に 'id' カラムが存在するなど) 、主に固定フォーマットでカラムの改名を可能にするための joinAdd を用いた結合で使用されます。

selectAs にパラメータを渡さない場合、現在の SELECT (通常デフォルトの *) をリセットし、現在のオブジェクトのカラム名に基づいた 取得リストを構築します。

パラメータ

注意

この関数は、スタティックにコールする ことはできません。

例 39-1selectAs() の使用

<?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 columns 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()) {
  ......
}


?>