yii2的表单验证与数据库操作

      表单验证的每个具体参数:

      可以查阅 网址:http://www.yiiframework.com/doc-2.0/yii-validators-validator.html

 

     验证的自定义方法

            在模型文件的rules函数里

            public function rules(){

                   return[

                            [‘username’,’check’,‘params’=>[‘message’ =>’不是等于mrs’ ]]

                             ]

            public function check($attribute,$params){

                    if($this->$attribute != ‘mrs’){

                               $this->addError($attribute,$params[‘message’]);

                     }

             }

 

            获取验证错误

           

                       $model= new Article();

                       if($model->validate()){

                              print_r($model->getError());

                       }

             ?>

       关于数据库操作

            ActiveRecord类型的增删改查

                   ①  \app\models\Article::findAll([‘status’=>’1’]);//查询Article,status为1的所有数据

                   ②  \app\models\Article::findOne(1);//直接根据id查询

                         \app\models\Article::findOne([‘status’=>’1’]);//根据指定条件查询

                   ③\app\models\Article::find()->where([‘id’ =>’1’])->one();//查询一条id等于1的数据

                        \app\models\Article::find()->where([‘status’ =>’1’])->all();//查询一条status等于1的所有数据

                       或

                      \app\models\Article::find()->where(‘status=:status’,[‘:status’=>’1’])->all();

                     \app\models\Article::find()->where([‘status’ =>’1’])->orderBy(‘dateDESC’)->all();//查询status等于1的数据,根据date 排序

                      \app\models\Article::find()->where([‘status’ =>’1’])->orderBy(‘dateDESC’)->offset[5]->limit[3]->all();//查询status等于1的数据,根据date 排序

 

                  ④更新一条数据

                      $article =\app\models\Article::findOne(1);

                      $article->title= ‘change title’;

                       //save函数第一个参数默认为true,就是更新或插入启动验证

                      //如果不想使用验证可以用save(false);

                      $article->save();

                 ⑤更新指定属性updateAll(‘更新的属性’;’条件’)

                      \app\models\Article::updateAll([‘title’=>’change title’,[‘id’=>1]);

           

                 ⑥添加一条新数据

                      $article=new \app\models\Article();

                      $article->title=’new one’;

                      $article->content=’this is new’;

                      $article->save();

               ⑦删除一条数据

                      \app\models\Article::findOne(1)->delete();

               ⑧删除指定条件的数据

                      \app\models\Article::deleteAll([‘id’=>2]);

 

               \yii\db\Query查询数据

               $db=new \yii\db\Query;

                //查询一条id等于2的数据

               $db->select(‘id’)->from(‘mrs_article’)->where(‘id=:id’,[‘:id’=>2])->one();

               $db->select(‘id’)->from(‘mrs_article’)->where([‘id’=>1])->one();

                //查询多条

               $db->select(‘id’)->from(‘mrs_article’)->where([‘status’=>’1’])->all();

               //in查询多条

               $db->select(‘id’)->from(‘mrs_article’)->where([‘id’=>[1,2]])->all();

              //根据时间排序,并且从第5条开始获取3条

               $db->select(‘id’)->from(‘mrs_article’)->orderBy(‘dateDESC’)->offset(5)->limit(3)->all();

                //查询数据总个数

               $db->select(‘id)->from(‘mrs_article’)->count();

 

              Yii::$app->db进行增删改查

             ①  查询数据

             //查询一条数据

             \Yii:$app->db->createCommand(‘SELECT* FROM mrs_article’)->queryOne();

            //绑定单个防注入参数

             \Yii::$app->db->createCommand(‘SELECT *FROM mrs_article where id=:id)->bindValue(‘:id’,2)->queryOne();

            //绑定多个防注入参数

          \Yii::$app->db->createCommand(‘SELECT *FROM mrs_article where id=:id AND status=:status’)->bindValues([‘:id’=>1,’:status’=>’1’])->queryOne();

         //查询多条数据

         \Yii::$app->db->createCommand(‘SELECT* FROM mrs_article’)->queryAll();

         //查询指定数据的字段的数据

          $db=\Yii::$app->db;

         $db->createCommand(‘SELECT COUNT(*) FROMmrs_article’)->queryScalar();

 

         ②  更新数据

          $db=\Yii::$app->db->createCommand();

          $db->update(‘mrs_article’,[‘status’=>0],’id=:id’,[‘:id’=>1])->execute();

                                            表名    要更新的字段  条件

         ③   插入数据

         $db=\Yii:$app->db->createCommand();

         $db->insert(‘mrs_article’,[‘title’=>’newRecord’])->execute();

        ④  删除数据

          $db=\Yii::$app->db->createCommand();

          $db->delete(‘mrs_article’,’id=:id’,[‘:id’=>1])->execute();

 

你可能感兴趣的:(yii)