->setFrom()

->setFrom() – (form で POST された) 配列またはオブジェクトから要素をコピーする

Synopsis

boolean $DB_DataObject->setFrom ( array or object $from , string $format = '%s' , bool $skipEmpty = = false )

Description

テーブル定義に基づいて、配列またはオブジェクトから現在のオブジェクトに 要素をコピーします(キーの値は上書きされません)。 このメソッドは、(もしフィールド名がデータベースと一致する場合) フォームから POST される情報を処理したり、 オブジェクトを複製するのに使用できます。

setFrom メソッドを使用してキーカラムの値を設定することはできません。 セキュリティー上の理由により、暗黙的に無視されます。 (しかし、手動でキーの値を設定することはできます)

setFrom メソッドは、set系メソッド set{columnname} が存在していれば、 それをコールしようとします。 また、日付フォーマットを修正するために fromValue() メソッドもコールします。

このメソッドがカラム名 from に対するオーバーロードされたメソッドと 重複していることに気づくかも知れません。 そのため、カラム名 'from' に関連するメソッドは、set_from と getFrom になります。

Parameter

  • array or Object $from - コピー元のオブジェクトを指定します。

  • string $format - 配列またはオブジェクト変数のフォーマットを指定します。 これにより、どのようにこのオブジェクトに関連付けるかが決定されます。 例えば、指定した配列が prefix_COLNAME というフォーマットであれば、 'prefix_%s' を指定します。

  • bool $skipEmpty - true にすると、DB_DataObject はカラムが空 ('' や 0 など) の場合に空の値を代入しません。

Return value

array or boolean - 成功時は TRUE、あるいは PHP4.3.2 以降では set*() の戻り値の配列

Note

This function can not be called statically.

Example

setFrom() の使用

<?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();
?>
オーバーロードを用いた自動的な set系・get系メソッド (Previous) 現在の結果を配列で取得する (Next)
Last updated: Sat, 25 Oct 2014 — 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:

There are no user contributed notes for this page.