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);
  • 相关阅读:
    LeetCode15 3Sum
    LeetCode10 Regular Expression Matching
    LeetCode20 Valid Parentheses
    LeetCode21 Merge Two Sorted Lists
    LeetCode13 Roman to Integer
    LeetCode12 Integer to Roman
    LeetCode11 Container With Most Water
    LeetCode19 Remove Nth Node From End of List
    LeetCode14 Longest Common Prefix
    LeetCode9 Palindrome Number
  • 原文地址:https://www.cnblogs.com/cqlb/p/10857367.html
Copyright © 2011-2022 走看看