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);
  • 相关阅读:
    Windows Azure Cloud Service (14) 使用Windows Azure诊断收集日志记录数据
    Windows Azure Cloud Service (13) 用Visual Studio 2010 将应用程序部署到Windows Azure平台
    Windows Azure Cloud Service (15) 多个VM Instance场景下如何处理ASP.NET Session
    Windows Azure Storage (5) Windows Azure Drive
    Windows Azure Storage (7) 使用工具管理Windows Azure Storage
    SQL Azure(二) SQL Azure vs SQL Server
    webbrowser的自动提交
    提取视频的背景声音的软件
    Listview列排序的bug原因
    两个奇怪的问题
  • 原文地址:https://www.cnblogs.com/cqlb/p/10857367.html
Copyright © 2011-2022 走看看