您的位置:首页 > 编程语言 > PHP开发

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

2016-02-29 21:48 661 查看
表单验证的每个具体参数:

可以查阅 网址: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’]);

}

}

获取验证错误

<?php

$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();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: