->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();
?>