Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Memperbarui dan menghapus Model Terkait (Tabel relasional) di Yii

PERBARUI

Tampaknya, Anda hanya memiliki hubungan satu-ke-satu jadi jika demikian, Anda hanya perlu menautkan $q dengan kualifikasi khusus:

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));
        }
    }

Dengan beberapa penyesuaian yaitu loop dan input data tabular kode di atas dapat berfungsi untuk satu-ke-banyak.

HAPUS

Untuk menghapus, edit Candidate::beforeDelete() untuk menghapus semua kualifikasi yang terkait dengannya sebagai berikut:

public function beforeDelete(){
    foreach($this->qualifications as $q)
        $q->delete();
    return parent::beforeDelete();
}

Anda harus membungkus panggilan ke Candidate::delete() dalam suatu transaksi.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqli_stmt::num_rows() mengembalikan nilai yang salah

  2. Bagaimana cara menangani crash database (Glassfish/MySQL)?

  3. Menyebarkan &Mengelola Cluster NDB MySQL dengan ClusterControl

  4. Bagaimana menerapkan pagination ke hasil kueri SHOW TABLES di PHP

  5. Bagaimana cara membuat tabel dua kolom PHP dengan nilai dari database?