zoukankan      html  css  js  c++  java
  • Yii2 常用代码集合

    Yii2.0 对数据库查询的一些简单的操作

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    User::findOne($id);   //此方法返回 主键 id=1  的一条数据(举个例子); 
     
    User::find()->where(['name' => '老司机'])->one();   //此方法返回 ['name' => '老司机'] 的一条数据;
     
    User::find()->where(['name' => '老司机'])->all();   //此方法返回 ['name' => '老司机'] 的所有数据;
     
    User::find()->orderBy('id DESC')->all();   //此方法是排序查询;
     
    User::findBySql('SELECT * FROM user')->all();  //此方法是用 sql  语句查询 user 表里面的所有数据;
     
    User::findBySql('SELECT * FROM user')->one();  //此方法是用 sql  语句查询 user 表里面的一条数据;
     
    User::find()->where("sex=:sex and age>:age", [':sex' => '男''age' => '24'])->count('id');   //统计符合条件的总条数;
     
    User::find()->andWhere(['sex' => '男''age' => '24'])->count('id');   //统计符合条件的总条数;
     
    User::find()->andFilterWhere(['like''name''老司机']); //此方法是用 like 查询 name 等于 老司机的 数据
     
    User::find()->one();    //此方法返回一条数据;
     
    User::find()->all();    //此方法返回所有数据;
     
    User::find()->count();    //此方法返回记录的数量;
     
    User::find()->average();    ///此方法返回指定列的平均值;
     
    User::find()->min();    //此方法返回指定列的最小值 ;
     
    User::find()->max();    //此方法返回指定列的最大值 ;
     
    User::find()->scalar();    //此方法返回值的第一行第一列的查询结果;
     
    User::find()->column();    //此方法返回查询结果中的第一列的值;
     
    User::find()->exists();    //此方法返回一个值指示是否包含查询结果的数据行;
     
    User::find()->batch(10);  //每次取 10 条数据 
     
    User::find()->each(10);  //每次取 10 条数据, 迭代查询

    直接操作数据库 - 添加

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $connection = Yii::$app->db;
    $table '{{%user}}';
    $data = [
        "name" => $name,
    ];
    $result $connection->createCommand()->insert($table$data)->execute(); //返回数量
    if($result){
        return ["status"=>1, "info"=>"保存成功""url"=>Url::to(['user/index'])];
    }else{
        return ["status"=>0, "info"=>"保存失败"];
    }

    直接操作数据库 - 批量插入

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $connection = Yii::$app->db;
    $table '{{%goods}}';
    $data = [
        "name" => "商品名称",
        "price" => "25.63",
    ];
    $lebels = ['name''price'];
    $result $connection->createCommand()->batchInsert($table$lebels$data)->execute();
    if($result){
        return ["status"=>1, "info"=>"保存成功""url"=>Url::to(['goods/list'])];
    }else{
        return ["status"=>0, "info"=>"保存失败"];
    }

    直接操作数据库 - 修改

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $connection = Yii::$app->db;
    $table '{{%user}}';
    $data = [
        "name" => $name,
    ];
    $result $connection->createCommand()->update($table, ['name'=>$data["name"]], ['id'=>intval($data["id"]), 'uid'=>$uid])->execute(); //返回数量
    if($result){
        return ["status"=>1, "info"=>"保存成功""url"=>Url::to(['buyer/goods''id'=>$data["id"]])];
    }else{
        return ["status"=>0, "info"=>"保存失败"];
    }

    直接操作数据库 - 删除

    1
    2
    3
    4
    5
    6
    $data $connection->createCommand()->delete($table, ["uid" => $uid"id" => $id])->execute(); //返回数量
    if(!$data){
        return ["status"=>0, "info"=>"删除失败 [没有找到相应内容]"];
    }else{
        return ["status"=>1, "info"=>"成功删除".$data."条记录"];
    }

    直接操作数据库 - 查询

    1
    2
    3
    4
    5
    6
    7
    $uid = Yii::$app->user->id;
    $table '{{%shop}}';
    $query new Query;
    $data $query->from($table)->where(["uid" => $uid])->one();
    if($data===false){
        throw new yiiwebNotFoundHttpException('店铺不存在');
    }

    设置错误提示

    1
    2
    Yii::$app->session->setFlash('info''添加成功'); //类型可以为:error、danger、success、info、warning
    return $this->refresh(); //返回上一页并刷新

    显示上面设置的错误提示

    1
    2
    3
    if( Yii::$app->session->hasFlash('info') ) {
        echo Yii::$app->session->getFlash('info');
    }

    设置模型验证器返回的错误

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    if$model->getErrors() ) {
        $msg '';
            foreach($model->getErrors() as $k => $v){
                $msg .= '<p>• '.$v[0].'</p>';
            }
        echo $msg;
    }
     
    //或显示第一个错误信息:
        if($model->getErrors()){
            return ["status"=>0, "info"=>array_values($model->getFirstErrors())[0]];                        
        }else{
            return ["status"=>1, "info"=>"成功"];                        
        }

    SCENARIO 场景

    1
    2
    $user new User();
    $user->scenario = "login"//登录场景

    REQUEST

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Yii::$app->request->get('id', 0);
    Yii::$app->request->post('name');
    if(Yii::$app->request->isGet){ }
    if(Yii::$app->request->isPost){ }
    if(Yii::$app->request->isAjax){ }
     
    //返回首页
    Yii::$app->homeUrl
     
    //返回上一页
    return $this->goBack();
     
    //当字符串中带有空格或者括号等会引起浏览器曲解,就要加上Html::encode进行Html编码的转换,以防出现一些不必要的错误
    Html::encode($this->title);
     
    //获取IP
    Yii::$app->getRequest()->getUserIP();

    获取config/main.php配置的值

    1
    Yii::$app->authManager->assignmentTable

    获取config/params.php配置的值

    1
    Yii::$app->params['paramsName']

    yii2中常用路径

    1
    2
    3
    4
    5
    6
    7
    8
    项目路径:Yii::$app->BasePath 或 Yii::getAlias('@app') 输出E:websitewxwwwrootackend
    根目录路径:dirname(Yii::$app->BasePath) 或 dirname(Yii::getAlias('@app')) 输出E:websitewxwwwroot
    根目录下的任意目录:dirname(Yii::$app->BasePath).'/uploads' 或 dirname(Yii::getAlias('@app')).'/uploads'
     
    $backend str_ireplace(dirname(Yii::getAlias('@frontend')), "", Yii::getAlias('@backend'));
    $url = Url::to(['/goods/view''id' => 5]);
    $url str_ireplace($backend""$url);
    $url = Yii::$app->params['site_url'] . $url;

    文件缓存

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    //将信息写入缓存
    $cache = Yii::$app->cache;
    $cache->set("cacheName"$cacheData);
     
    //从缓存取出信息
    $cache = Yii::$app->cache;
    $data $cache->get("cacheName");
    if($data){
        //读取成功
    }
     
    //删除指定的缓存
    $cache = Yii::$app->cache;
    $cache->delete("cacheName");
     
    yiicachingCache::get():通过一个指定的键(key)从缓存中取回一项数据。如果该项数据不存在于缓存中或者已经过期/失效,则返回值 false。 
    yiicachingCache::set():将一项数据指定一个键,存放到缓存中。 
    yiicachingCache::add():如果缓存中未找到该键,则将指定数据存放到缓存中。 
    yiicachingCache::mget():通过指定的多个键从缓存中取回多项数据。 
    yiicachingCache::mset():将多项数据存储到缓存中,每项数据对应一个键。 
    yiicachingCache::madd():将多项数据存储到缓存中,每项数据对应一个键。如果某个键已经存在于缓存中,则该项数据会被跳过。 
    yiicachingCache::exists():返回一个值,指明某个键是否存在于缓存中。 
    yiicachingCache::delete():通过一个键,删除缓存中对应的值。 
    yiicachingCache::flush():删除缓存中的所有数据。

    用户相关

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    //判断用户是否登录
    if(Yii::$app->user->isGuest){
        //未登录
    }else{
        //已登录
    }
     
    //取得用户信息
    $user = Yii::$app->user->identity;
    echo $user->username;
    echo $user["username"];

    跳转

    1
    return Yii::$app->response->redirect(["/shop/apply"], 302);
  • 相关阅读:
    C#练习代码
    docker部署gitlab
    vim 缩进设置
    css 初步学习笔记
    tomcat
    201871010107公海瑜《面向对象程序设计(java)》第一周学习总结 公海瑜
    发现JavaScript真强大
    今天看了一點ant的內容,受益匪浅
    一道趣味問題
    一個挺適合初學者的Ant教程
  • 原文地址:https://www.cnblogs.com/cqlb/p/10857367.html
Copyright © 2011-2022 走看看