Jan 23
逆引きrhaco(?)14: GET,POSTしてきた値をオブジェクトに代入する
!!rhaco.orgにさらされた><
ということでさらされ記念で更新します。でもマイペースでいきますです。
今回はHPからGET,POSTリクエストで渡されたデータをオブジェクトに代入してみます。
network.http.Request内にあるtoObjectを使ってみます。
index.php?a=1&b=2&c=3&d=4のようなデータが送られるとします。
通常は
<?php
class hoge {
var a;
var b;
var c;
var d;
function hoge(){
}
....
}
$h = new hoge();
$h->a = $_GET['a'];
$h->b = $_GET['b'];
$h->c = $_GET['c'];
$h->d = $_GET['d'];
<?php
Rhaco::import('generic.Flow');
class hoge {
var a;
var b;
var c;
var d;
function hoge(){
}
....
}
$flow = new Flow();
$h = $flow->toObject(new hoge());
.....
値チェックして、処理に回してほげほげ
?>
これだけです。簡単ですね!この元メソッドはnetwork.http.Requestにありますので、network.http.Request,network.http.RequestLoginでもこのメソッドは使用できます。でもgeneric.Flowが非常に便利なのでつい使ってしまいます。
この機能が非常に便利なのはリクエストデータをデータベースに保存する場合です。rhacoではテーブルモデルを用意してあり、各カラムへのgetter,setterが用意されているのですが、いちいち使わなくてもtoObject一発で代入してくれます。すげー。
ちなみに同じことが
$h = V::ho($_GET,new hoge()); $h = ObjectUtil::hashConvObject($_GET,new hoge()); //----- version 1.4.9までは下の書式も可 $h = Variable::hashConvObject($_GET,new hoge()); $h = V::hashConvObject($_GET,new hoge());
という書き方でも可能です。これも非常〜に便利です。データをちょっと修正してから代入したい時はこれを使っています。
このエントリーのはてなブックマーク (