记录未保存在yii2的数据库表中

记录未保存在yii2的数据库表中,yii2,yii2-basic-app,Yii2,Yii2 Basic App,我有塔鲁卡模型,我们选择地区,输入尽可能多的塔鲁卡。 但是这些记录没有被保存 public function actionCreate() { $model = new Taluka(); if ($model->load(Yii::$app->request->post()) ) { $talukaslist = $model->talukas; if(is_arra

我有塔鲁卡模型,我们选择地区,输入尽可能多的塔鲁卡。 但是这些记录没有被保存

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']);
    }
}
请尝试下面的代码

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,


            ]);
        }
    }
公共函数actionCreate()
{
$model=new Taluka();
如果($model->load(Yii::$app->request->post()){
$talukaslist=$model->talukas;
if(isset($talukaslist)&&&&&&$talukaslist!=array())
{
foreach($Talukas列为$taluka)
{
如果(isset($taluka)&&$taluka==null)
{
返回$this->render('create'[
'model'=>$model,
]);
}
其他的
如果(isset($taluka)&&$taluka!=null)
{
$talukaRecord=新Taluka();
$talukaRecord->DistrictId=$model->DistrictId;
$talukaRecord->Taluka=$Taluka;
如果($talukaRecord->save())
{}
其他的
{
回声“;
打印($talukaRecord->getErrors());死亡;
}
}
}
}
返回$this->redirect(['index']);
}  
否则{
返回$this->render('create'[
'model'=>$model,
]);
}
}

然后,它会按预期工作,对吗?检查模型验证失败的原因尝试打印($talukaRecord->getErrors())
,以检查哪些验证规则失败。使用model Taluka.php文件更新您的问题。我为所选地区输入的两个Taluka可能重复,并显示以下数组([talukas]=>Array([0]=>Taluka不能为空。))数组([talukas]=>Array([0]=>Taluka不能为空。)代码不起作用,即使输入了所有值,错误仍显示为数组([talukas]=>Array([0]=>talukas不能为空。))