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();
可以查阅 网址: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();
相关文章推荐
- ThinkPHP框架配置
- php防止sql注入
- ThinkPHP去除url中的index.php以及绑定模块
- yii2表单学习
- PHP之有关类和对象的系统函数与运算符
- Laravel 5.1 学习 之 授权
- yii2一些入门知识
- YII框架的安装出现的两个小问题
- 为什么会有OutputStreamWriter和InputStreamReader两个转换类的出现以及它们的作用
- thinkphp3.2架构及源码理解
- PHP获得数组的交集与差集
- php用explode,可以提供多个字符作为分割符来进行分割数组吗?
- 构建自己的PHP框架--实现Model类(2)
- PHP连接MySQL数据库过程
- 【PHP项目部署二】Mysql环境配置
- PHP预定义接口之 ArrayAccess
- 【PHP项目部署一】PHP环境配置
- PHP 删除数组第一个元素和最后一个元素
- vsftpd的配置
- php处理json数据(从服务器获取,post提交)