ThinkPHP CURD方法のdata方法詳細
ThinkPHP CURD方法のdata方法もモデル類の一貫操作方法の一つであり、現在操作されているデータの対象値を設定するために、多くの開発者がこの方法に慣れていないため、今日はdataの使い方を説明します。
具体的な使い方は以下の通りです。
1.書き込み操作
通常の状況では、私たちはcreate方法または赋値によってデータオブジェクトを生成し、データベースに書き込みます。
dataメソッドは、配列、オブジェクト、および文字列をサポートします。オブジェクト方式は以下の通りです。
もちろん、data方法は、データを更新するためにも使用されうる。
saveメソッドを呼び出してデータを更新すると、現在のデータオブジェクトにメインキーが存在するかどうかを自動的に判断します。あると自動的に更新条件として設定されます。つまり、次のような使い方と上記のようなものが同じです。
書込み動作に加えて、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();