ThinkPHP CURD方法のdata方法詳細


ThinkPHP CURD方法のdata方法もモデル類の一貫操作方法の一つであり、現在操作されているデータの対象値を設定するために、多くの開発者がこの方法に慣れていないため、今日はdataの使い方を説明します。
具体的な使い方は以下の通りです。
1.書き込み操作
通常の状況では、私たちはcreate方法または赋値によってデータオブジェクトを生成し、データベースに書き込みます。

$Model = D('User');
$Model->create();
 //                 
$Model->add();

また、または直接にデータオブジェクトに値を割り当てます。例えば、

$Model = M('User');
$Model->name = '  ';
$Model->email = '[email protected]';
$Model->add();

data方法は、動作するデータオブジェクトを直接生成することであり、例えば、

$Model = M('User');
$data['name'] = '  ';
$data['email'] = '[email protected]';
$Model->data($data)->add();

注意:私たちが同時にcreate方法とdataを使ってデータオブジェクトを作成すると、後で呼び出す方法が有効です。
dataメソッドは、配列、オブジェクト、および文字列をサポートします。オブジェクト方式は以下の通りです。

$Model = M('User');
$obj = new stdClass;
$obj->name = '  ';
$obj->email = '[email protected]';
$Model->data($obj)->add();

文字列の使い方は以下の通りです。

$Model = M('User');
$data = 'name=  &[email protected]';
$Model->data($data)->add();

データは、例えば、add方法において直接にデータオブジェクトに導入されて追加されてもよい。

$Model = M('User');
$data['name'] = '  ';
$data['email'] = '[email protected]';
$Model->add($data);

しかし、この方式ではdataパラメータは配列のみを使用することができます。
もちろん、data方法は、データを更新するためにも使用されうる。

$Model = M('User');
$data['id'] = 8;
$data['name'] = '  ';
$data['email'] = '[email protected]';
$Model->data($data)->save();

もちろん私達も直接このように使うことができます。

$Model = M('User');
$data['id'] = 8;
$data['name'] = '  ';
$data['email'] = '[email protected]';
$Model->save($data);

同様に、このときdataパラメータは配列にのみ入ることができます。
saveメソッドを呼び出してデータを更新すると、現在のデータオブジェクトにメインキーが存在するかどうかを自動的に判断します。あると自動的に更新条件として設定されます。つまり、次のような使い方と上記のようなものが同じです。

$Model = M('User');
$data['name'] = '  ';
$data['email'] = '[email protected]';
$Model->data($data)->where('id=8')->save();

2.読み操作
書込み動作に加えて、data方法は、現在のデータオブジェクト、例えば、

$User = M('User');
$map['name'] = '  ';
$User->where($map)->find();
 //         
$data = $User->data();