अद्यतन करना
ऐसा लगता है, आपका केवल एक-से-एक संबंध है, इसलिए यदि ऐसा है तो आपको केवल $q
लिंक करना होगा विशिष्ट योग्यता के लिए:
public function actionUpdate()
{
//load model
$q=&$model->qualifications[0];
if (isset($_POST['Candidate'], $_POST['Qualification'])) {
$model->attributes=$_POST['Candidate'];
$q->attributes=$_POST['Qualification'];
$error = false;
$transaction = Yii::app()->db->beginTransaction();
try {
if (!$model->save()) {
throw new CException(CHtml::errorSummary($model));
}
if (!$q->save()) {
throw new CException(CHtml::errorSummary($q));
echo $error;
}
$transaction->commit();
} catch (Exception $e) {
$transaction->rollBack();
$error = $e->getMessage();
}
if (!$error) {
$this->redirect(array('view','id'=>$model->id));
}
}
कुछ बदलावों के साथ यानी एक लूप और सारणीबद्ध डेटा इनपुट उपरोक्त कोड एक से कई के लिए काम कर सकता है।
हटाना
हटाने के लिए Candidate::beforeDelete()
edit संपादित करें इससे जुड़ी सभी योग्यताओं को इस प्रकार हटाने के लिए:
public function beforeDelete(){
foreach($this->qualifications as $q)
$q->delete();
return parent::beforeDelete();
}
आपको कॉल को Candidate::delete()
. पर लपेटना चाहिए लेन-देन में।