->setFrom()
->setFrom() -- (form で POST された)配列またはオブジェクトから
要素をコピーする
概要
boolean $DB_DataObject->setFrom (array or object $from [, string $format = '%s'])
説明
テーブル定義に基づいて、配列またはオブジェクトから現在のオブジェクトに
要素をコピーします(キーの値は上書きされません)。
このメソッドは、(もしフィールド名がデータベースと一致する場合)
フォームから POST される情報を処理したり、
オブジェクトを複製するのに使用できます。
setFrom メソッドを使用してキーカラムの値を設定することはできません。
セキュリティー上の理由により、暗黙的に無視されます
(しかし、手動でキーの値を設定することはできます)。
setFrom メソッドは、set系メソッド set{columnname} が存在していれば、
それをコールしようとします。
また、日付フォーマットを修正するために fromValue()
メソッドもコールします。
このメソッドがカラム名 from に対するオーバーロードされたメソッドと
重複していることに気づくかも知れません。
そのため、カラム名 'from' に関連するメソッドは、set_from と
getFrom になります。
返り値
array or boolean - 成功時は TRUE、あるいは PHP4.3.2 以降では set*() の戻り値の配列
注意
この関数は、スタティックにコールする
ことはできません。
例
例 33-1setFrom() の使用
<?php
// person contains name,age
// $_POST contains 'name'=>'fred', 'age'=>'22'
$person = new DataObjects_Person;
$person->get(12);
$person->setFrom($_POST);
$person->update();
// or using the formating
// person contains name,age
// $_POST contains 'person_name'=>'fred', 'person_age'=>'22'
$person = new DataObjects_Person;
$person->get(12);
$ret = $person->setFrom($_POST,'person_%s');
// use the return value from setFrom to test for errors (PHP4.3.2)
if ($ret === true) {
$person->update();
} else {
// $ret is an array or strings..
echo 'There were some errors: ' . implode(', ', $ret);
}
// or copying from another object
$personA = new DataObjects_Person;
$personA->get(12);
$personB = new DataObjects_Person;
$personB->get(14);
$personA->setFrom($personB);
$person->update();
?>
|
|