2017-05-16 9 views
0

私はYii 1.1の新機能です 2つのテーブルに1つのオブジェクトを保存したいのですが、私のコードをチェックしてください。Yii 1.1:2つのテーブルにデータを保存

$policyMaping = new PolicyRules(); 
$policyMaping->policy_rules_master_id = $data['policy']['id']; 
$policyMaping->rules_id = $newRule->id; 
$policyMaping->studio_id = $studio_id; 
$policyMaping->policy_type = $data['policy']['name']; 
$policyMaping->duration_type = $data['policy']['duration_type']; 
$policyMaping->policy_value = $policy; 
$policyMaping->created_date = gmdate('Y-m-d H:i:s'); 
$policyMaping->save(); 

$policyMaping = new PolicyRulesLog(); 
//$policyMaping->policy_rules_master_id = $data['policy']['id']; 
//$policyMaping->rules_id = $newRule->id; 
//$policyMaping->studio_id = $studio_id; 
//$policyMaping->policy_type = $data['policy']['name']; 
//$policyMaping->duration_type = $data['policy']['duration_type']; 
//$policyMaping->policy_value = $policy; 
//$policyMaping->created_date = gmdate('Y-m-d H:i:s'); 
$policyMaping->user_id = Yii::app()->user->id; 
$policyMaping->save(); 

要件コードを掲載しました。 PolicyRulesPolicyRulesLogの2つのテーブルがあります。user_id両方のテーブルに要求されたデータを保存します。私は別の変数に同じコードを書いてはいけません。私を助けてください。

+0

てみてください。 $ policyMapingLog =新しいPolicyRulesLog(); $ policyMapingLog-> setAttributes($ data); '私はそれがあなたの問題を解決すると思います –

+0

@ArshadShaikh私はすべてのnull値の列を私のテーブルに挿入しています。 – Chinmay235

+1

理想的には、PolicyRulesモデルのafterSaveメソッドを使用し、 'PRL-> attributes = PR-> attributes;' user_id'を使用してPolicyRulesLogモデルに記入して保存します。 2つ目の方法は、同じ属性()関数を使用してコントローラに同じ記述を行うことです。 – Hmmm

答えて

0

はい、同じデータを別のテーブルに保存できます。私はあなたのコードを修正しました。下記のコードをチェックし、あなたのために働くかどうかお知らせください。 = $ policyMaping-は>属性この `$データと

$policyMaping = new PolicyRules(); 
$policyMaping->policy_rules_master_id = $data['policy']['id']; 
$policyMaping->rules_id = $newRule->id; 
$policyMaping->studio_id = $studio_id; 
$policyMaping->policy_type = $data['policy']['name']; 
$policyMaping->duration_type = $data['policy']['duration_type']; 
$policyMaping->policy_value = $policy; 
$policyMaping->created_date = gmdate('Y-m-d H:i:s'); 
$policyMaping->save(FALSE); // use false parameter to disable validation otherwise just use save only 

$policyMapingLog = new PolicyRulesLog(); 
$policyMapingLog->policy_rules_master_id = $data['policy']['id']; 
$policyMapingLog->rules_id = $newRule->id; 
$policyMapingLog->studio_id = $studio_id; 
$policyMapingLog->policy_type = $data['policy']['name']; 
$policyMapingLog->duration_type = $data['policy']['duration_type']; 
$policyMapingLog->policy_value = $policy; 
$policyMapingLog->created_date = gmdate('Y-m-d H:i:s'); 
$policyMapingLog->user_id = Yii::app()->user->id; 
$policyMapingLog->save(FALSE); 
ショートあなたにも使用することができて

...

$policyMaping = new PolicyRules(); 
$policyMaping->setAttributes($data); 
$policyMaping->rules_id = $newRule->id; 
$policyMaping->studio_id = $studio_id; 
$policyMaping->policy_value = $policy; 
$policyMaping->created_date = gmdate('Y-m-d H:i:s'); 
$policyMaping->save(FALSE); 

$policyMapingLog = new PolicyRulesLog(); 
$policyMapingLog->setAttributes($data); 
$policyMapingLog->rules_id = $newRule->id; 
$policyMapingLog->studio_id = $studio_id; 
$policyMapingLog->policy_value = $policy; 
$policyMapingLog->created_date = gmdate('Y-m-d H:i:s'); 
$policyMapingLog->user_id = Yii::app()->user->id; 
$policyMapingLog->save(FALSE); 
+0

あなたは正しいです。しかし、あなたは 'rules_id'、' studio_id'、 'policy_value'などを繰り返しています。 – Chinmay235

+0

' $ data'にはありません。 –

関連する問題