Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

Yii . में संबंधित मॉडल (रिलेशनल टेबल) को अपडेट करना और हटाना

अद्यतन करना

ऐसा लगता है, आपका केवल एक-से-एक संबंध है, इसलिए यदि ऐसा है तो आपको केवल $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() . पर लपेटना चाहिए लेन-देन में।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. संग्रहीत प्रक्रिया का क्या मतलब है?

  2. एक JSON डेटासेट को Node.js और Express के साथ तालिका के रूप में प्रदर्शित करना

  3. Laravel 4 माइग्रेट बेस टेबल नहीं मिला

  4. MySQLdb - जांचें कि क्या पंक्ति मौजूद है Python

  5. MySQL का अब () +1 दिन