2017-05-04 92 views
0

我有taluka模型,我們選擇區和輸入儘可能多的talukas。 但記錄沒有保存。記錄沒有得到保存在數據庫表yii2

public function actionCreate() 
    { 

     $model = new Taluka(); 

     if ($model->load(Yii::$app->request->post())) { 

       $talukaslist = $model->talukas; 

       if(is_array($talukaslist)) 
       { 

        foreach($talukaslist as $taluka) 
        { 
         if($taluka ==null) 
         { 
            return $this->render('create', [ 
            'model' => $model, 
            ]); 
         } 
         else 
         if($taluka!=null) 
         { 
         $talukaRecord = new Taluka(); 
         $talukaRecord->DistrictId = $model->DistrictId; 
         $talukaRecord->Taluka = $taluka; 
         $talukaRecord->save(); 
         } 
        } 
       } 

       return $this->redirect(['index']); 
     } 

     else { 
      return $this->render('create', [ 
       'model' => $model, 


      ]); 
     } 
    } 

如果我使用$ talukaRecord-> save(false),那麼即使驗證失敗,記錄也會被保存。

型號:

<?php 

namespace app\models; 

use Yii; 

/** 
* This is the model class for table "taluka". 
* 
* @property integer $TalukaId 
* @property integer $DistrictId 
* @property string $Taluka 
* 
* @property Area[] $areas 
* @property Colony[] $colonies 
* @property Colonydemographic[] $colonydemographics 
* @property District $district 
* @property Village[] $villages 
* @property Villagedemographic[] $villagedemographics 
*/ 
class Taluka extends \yii\db\ActiveRecord 
{ 
    /** 
    * @inheritdoc 
    */ 


    public $talukas=[]; 

    public static function tableName() 
    { 
     return 'taluka'; 
    } 

    /** 
    * @inheritdoc 
    */ 
    public function rules() 
    { 
     return [ 
      [['DistrictId', 'Taluka'], 'required'], 
      [['DistrictId'], 'integer'], 
      [['talukas'], 'required'], 
      [['Taluka'], 'string', 'max' => 100], 
      [['DistrictId'], 'exist', 'skipOnError' => true, 'targetClass' => District::className(), 'targetAttribute' => ['DistrictId' => 'DistrictId']], 
     ]; 
    } 

    /** 
    * @inheritdoc 
    */ 
    public function attributeLabels() 
    { 
     return [ 
      'TalukaId' => 'Taluka ID', 
      'DistrictId' => 'District', 
      'talukas' => 'Taluka', 
     ]; 
    } 

    /** 
    * @return \yii\db\ActiveQuery 
    */ 
    public function getAreas() 
    { 
     return $this->hasMany(Area::className(), ['TalukaId' => 'TalukaId']); 
    } 

    /** 
    * @return \yii\db\ActiveQuery 
    */ 
    public function getColonies() 
    { 
     return $this->hasMany(Colony::className(), ['TalukaId' => 'TalukaId']); 
    } 

    /** 
    * @return \yii\db\ActiveQuery 
    */ 
    public function getColonydemographics() 
    { 
     return $this->hasMany(Colonydemographic::className(), ['TalukaId' => 'TalukaId']); 
    } 

    /** 
    * @return \yii\db\ActiveQuery 
    */ 
    public function getDistrict() 
    { 
     return $this->hasOne(District::className(), ['DistrictId' => 'DistrictId']); 
    } 

    /** 
    * @return \yii\db\ActiveQuery 
    */ 
    public function getVillages() 
    { 
     return $this->hasMany(Village::className(), ['TalukaId' => 'TalukaId']); 
    } 

    /** 
    * @return \yii\db\ActiveQuery 
    */ 
    public function getVillagedemographics() 
    { 
     return $this->hasMany(Villagedemographic::className(), ['TalukaId' => 'TalukaId']); 
    } 
} 
+1

然後,按預期工作,對不對?檢查爲什麼你的模型驗證失敗 – gmc

+0

嘗試'print_r($ talukaRecord-> getErrors())',檢查哪些驗證規則失敗。 –

+0

用模型** Taluka.php **文件更新您的問題。 –

回答

0

請嘗試以下代碼

public function actionCreate() 
    { 

     $model = new Taluka(); 

     if ($model->load(Yii::$app->request->post())) { 

       $talukaslist = $model->talukas; 

       if(isset($talukaslist) && && $talukaslist!=array()) 
       { 

        foreach($talukaslist as $taluka) 
        { 
         if(isset($taluka) && $taluka ==null) 
         { 
            return $this->render('create', [ 
            'model' => $model, 
            ]); 
         } 
         else 
         if(isset($taluka) && $taluka!=null) 
         { 
          $talukaRecord = new Taluka(); 
          $talukaRecord->DistrictId = $model->DistrictId; 
          $talukaRecord->Taluka = $taluka; 
          if($talukaRecord->save()) 
          {} 
          else 
          { 
           echo "<pre>"; 
           print_r($talukaRecord->getErrors());die; 
          } 

         } 
        } 
       } 

       return $this->redirect(['index']); 
     } 

     else { 
      return $this->render('create', [ 
       'model' => $model, 


      ]); 
     } 
    } 
+0

代碼不工作,即使所有輸入值,仍然被示出爲陣列 ( [talukas] =>數組 ( [0] => Talukas不能爲空錯誤。 ) ) – Questions

相關問題