什么是活动记录 活动记录能智能检测数据库对象的集合(例如列名、列类型、约束)而不需要手动地描述它们。活动记录是通过执行额外的SQL查询来获得该信息。...通过启用 Schema 缓存,检索到的数据库对象的集合将被保存在缓存中并在将来的请求中重用。...Schema缓存开启的方法: 要开启Schema缓存,需要配置一个cache应用组件来储存Schema信息,并在配置中设置 yii\db\Connection::enableSchemaCache 为true...'cache' => [ 'class' => 'yii\caching\MemCache', //配置缓存组件,这里用了memcache ],...schema information 'schemaCache' => 'cache', ], ], ]; 需要注意的是 1、若是修改了数据表的结构,或者添加
-app-advanced advanced 2.0.13 初始化高级模板 cd advanced init 修改数据库连接属性 打开 common\config\main-local.php,配置数据库连接信息...GET /users/123: 返回用户 123 的详细信息 HEAD /users/123: 显示用户 123 的概述信息 PATCH /users/123: and PUT /users/123: 更新用户...-H "Accept:application/json" "http://localhost/users" 命令行下还是比较麻烦的,也不方便测试,推荐使用 API测试工具 这类的工具有很多,我就不一一列举了...你说我就是不想加上s,我就想采用http://localhost/user 这种方式来进行访问,好吧,可以,满足你,只是不推荐 继续打开配置文件api\config\main.php修改刚才添加的 urlManager...继续修改 api\config\main.php 在 components 添加如下代码: 'response' => [ 'class' => 'yii\web\Response
-app-advanced advanced 2.0.13 初始化高级模板 cd advanced init 修改数据库连接属性 打开 common\config\main-local.php,配置数据库连接信息...'username' => 'root', 'password' => 'root', 'charset' => 'utf8', ], 执行 migrate 数据库迁移 yii migrate...'/api'); 配置 Web 服务器 很多同学在看了我这个教程,说是运行不起来、一直是404,然后就问我为什么?...你说我就是不想加上s,我就想采用http://localhost/user 这种方式来进行访问,好吧,可以,满足你,只是不推荐 继续打开配置文件api\config\main.php修改刚才添加的 urlManager...继续修改 api\config\main.php 在 components 添加如下代码: 'response' => [ 'class' => 'yii\web\Response',
一、安装redis插件|配置redis composer require yiisoft/yii2-redis 找到common的config文件,在components下加入redis配置参数...$visitsData[$id] += 1; }else{ $visitsData[$id] = 1; } //序列化后的数据格式为...redisObj->set('goods_visits',serialize($visitsArr)); } 四、检测redis是否建立成功 首先访问商品详情页面,然后进入Linux服务器,(redis安装成功后)...redis2.png 到这里就完成了redis同步数据到Mysql的基本步骤,但是每一次的执行需要手动进行访问,所以这里就需要一个能让它自动执行的方法,因为本项目是在linux下运行,所以使用了crontab...1~59 每分钟用*或者 */1表示 第2列表示小时1~23(0表示0点) 第3列表示日期1~31 第4列表示月份1~12 第5列标识号星期0~6(0表示星期天) 第6列要运行的命令 访问商品详情页面
DAO Yii的数据库读取对象,在PDO之上,DAO后有了Query Builder和AR 基本使用方法 获得数据库连接 $conn = Yii::$app->db; 执行数据库查询语句...(*) AS total FROM `user` WHERE id = 1")->queryScalar(); 获取某一列(放到一位数组中) Yii::$app->db->createCommand...yii\web\HttpException(402,"message"); HTTP Headers 添加设置删除Http Headers内容 $headers = Yii::$app->...数据库连接被打开后触发 Connection::EVENT_AFTER_OPEN 事务被启动时触发 Connection::EVENT_BEGIN_TRANSACTION 事务被提交后触发...204: 该请求被成功处理,响应不包含正文内容 (类似 DELETE 请求)。 304: 资源没有被修改。可以使用缓存的版本。 400: 错误的请求。
`scrape_time`*60+60) 搜索的时候添加条件筛选 $dataProvider = $searchModel->search(Yii::$app->request->queryParams...给mysql数据库表添加字段后,立即使用这个字段时会出现未定义的情况(Getting unknown property) 原因:yii 对数据表结构进行了缓存。...修改完表字段后执行 # 清理指定表结构缓存数据 Yii::$app->db->getSchema()->refreshTableSchema($tableName); 或 # 清理所有表结构缓存数据...获取url中的host信息: # http://localhost Yii::$app->request->getHostInfo() 获取url中的路径信息(不包含host和参数): Yii...::$app->request->getPathInfo() 获取不包含host信息的url(含参数): # /public/index.php?
CDbConnection: 一个抽象数据库连接 CDbCommand: SQL statement CDbDataReader: 匹配结果集的一行记录 CDbTransaction:数据库事务 访问数据库前需要建立数据库连接...// 因此,读取一行记录,列值将自动填充到对应的PHP对象中 // 比如这样: $connection = Yii::app()->db; $sql = "SELECT username, email...$keyword.'%')); // 添加了这么多,你都不知道合成后的SQL长啥样了,可以使用->text查看(魔术方法) // 如果觉得组合的SQL没有错误,那就执行他,添加->queryAll()...a row satisfying the specified condition $exists=Post::model()->exists($condition,$params); // 使用AR更新记录...// 如果关系查询执行后没有匹配的结果,返回将会是NULL或空的数组。 2).eager loading approach 热心的关系查询 //这名字真的很萌!
本文主要介绍MongoDB数据库中Update的主要操作场景,阅读本篇文章您将了解到以下内容 MongoDB中Update操作定义 MongoDB中SQl更新使用描述 MongoDB中操作符使用描述 相关代码示例...upsert: 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。...( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true ); 只添加一条记录 db.col.update( { "count..." : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false ); 全部添加进去 db.col.update( { "count" : { $gt...+yiisoft/yii2-mongodb 数据库配置 主要配置包括class和dsn属性,多个复制集合实例在dsn中配置 'class' => '\yii\mongodb\Connection', '
Active Record 模型是一种设计模式,用面向对象的方式抽象地访问数据库的模式。...在插入记录的时候,使用new关键字创建AR 模型对象; 在查询、更新、删除的时候,都是用find()方法创建对象。...== false; } 当使用“new”关键字创建ActiveRecord 实例对象时则“$this->getIsNewRecord()”返回true,执行插入操作,否则执行更新操作。...offset integer 要返回从0开始的偏移量 orderBy string 如何对结果进行排序 paranms array 以参数占位符为索引的查询参数列表 select mixed 被选中的列...例如: ['between','id',1,10]将会生成id BETWEEN 1 AND 10 in: 第一操作数为字段名称或者数据库表达式。
这个命令实际意义不大,相当于composer的一句话简介吧,也不需要其他参数 init 顾名思义,初始化你的composer项目,再简单一点说就是向导的形式帮你生成一个composer.json,如果你喜欢手动创建...当然如果你手动修改了composer.json,然后执行composer install后,会发现一个警告信息,看下图。...要记住的是 composer update 更新的是所有且更新到最新版本,如果要单独更新某个库,可以使用 composer update abei2017/yii2-emoji 。...--lock: 仅更新 lock 文件的 hash,取消有关 lock 文件过时的警告。 --with-dependencies 同时更新白名单内包的依赖关系,这将进行递归更新。...1 如果要指定版本,后面空格然后直接放版本号就可以,不指定也没事,会自动选择稳定最新的。 2 两种格式,不写则默认是tar,推荐使用zip。
在 DataGrid 小部件中的列是在 yii\grid\Column 类中进行配置的。它代表一个模型属性,并可以进行过滤和排序。 GridView 列显示常用操作 添加搜索能力,可以创建 ArticleSearch ,如下所示: 修改Article模型 <?...php namespace app\models; use Yii; use yii\base\Model; use yii\data\ActiveDataProvider; class ArticleSearch...'article_type_id' => $this->article_type_id, ]); // 时间搜索,用户在view上面输入的是字符串的时间,而数据库存放的是时间戳...->andWhere("created_at >= {$createdAt} AND created_at <= {$createdAtEnd}"); } // 通过添加过滤器来调整查询语句
例如,在开发应用程序的过程中,会增加一张新表且必须得加进来; 在应用程序被部署到生产环境后,需要建立一个索引来提高查询的性能等等。...当使用migration升级数据库时,up方法会被调用,反之,down方法会被调用。 m160623_034801_create_test_table.php的内容增加后: <?...\Migration::batchInsert(): 插入多行数据 yii\db\Migration::update(): 更新数据 yii\db\Migration::delete(): 删除数据 yii...yii\db\Migration::addPrimaryKey(): 添加一个主键 yii\db\Migration::dropPrimaryKey(): 删除一个主键 yii\db\Migration...::addForeignKey(): 添加一个外键 yii\db\Migration::dropForeignKey(): 删除一个外键 yii\db\Migration::createIndex():
Yii2 中的CSRF配置 Yii2 默认是启用CSRF令牌验证 配置在main.php中: 'components' => [ 'request' => [ /...false, 'cookieValidationKey' => 'cookvalid', ], ………… 二 启用CSRF的 POST验证 当启用了csrf后,...所有表单POST提交的数据就会进行验证,在表单中添加CSRF有两种方法 1....手动添加_csrf 在form表单中手动添加隐藏表单,也适用于ajax的手动添加_csrf Yii自动生成,不存在字符串不匹配 后来找到问题: render的时候使用了exit, 应使用return *注: render 时也不能用echo 或 die() 解决办法: return
已经做的相当细节,你可以不写columns,GridView会根据dataProvider自动渲染出每一列,接下来我们开始问答区域,通过一问一答来深度了解GridView。...'省', 'city' => '城市', 'created_at' => '新建时间', 'updated_at' => '最近更新...', 'sex' => '性别', ]; } } 当我们重新设置了attributeLabels方法后,对应的GridView会自动去拿取。...你可能会问,如果我要使用visible来隐藏一列,我不写这一列不就好了么?...options 控制着div容器的属性,默认添加一个class="grid-view" tableOptions 控制着{items}表格的属性,默认为其添加一个 class="table table-striped
一、从yii权威指中学到的 db组件 'schemaCachingDuration'=>3600, 为什么不起做用?...CWebUser配置中的loginurl,在此处登陆后,可以通过redirect跳转到 复制代码 代码如下: returnurl(Yii::app()->request->redirect(Yii:...中的RBAC权限,用数据库存item, 在system/web/auth下找到相应的sql导放到数据库中 配置 ?...如下 [后来发现这个不起作有] ?...其是一个数组,每一个数组元素对应着一列的配置,可以是字符串或数组 1、如果是字符串,格式是name:type:header 后两者是可选的,根据这三个值,创建一个CdatColumn实例 其中type参见
您可以通过本地组策略编辑器彻底关闭Windows更新,也可以将Windows更新调整为手动安装,一切都可以根据实际情况进行设置。...注意:如果您想要恢复更新,可以在此窗口中勾选“已启用”,然后应用并确定即可。 2.将Windows更新调整为手动安装 步骤1. 重复上述步骤1-2。网址:yii666.com< 步骤2....方法三:通过注册表编辑器关闭Windows自动更新 注册表编辑器是Microsoft Windows操作系统及其应用程序中重要的分层数据库,用于存储系统和应用程序的设置信息。...与本地组策略编辑器一样,您也可以通过注册表编辑器彻底禁用自动更新或将Windows更新调整为手动安装。 注意:修改注册表编辑器存在风险,请仔细安装演示步骤进行操作,否则可能对系统造成不可逆转的损害。...双击打开AUOptions项,将其数值数据从0更改为2,然后单击“确定”即可将Windows更新调整为手动安装模式。
2.添加独立模块 yii可以在modules文件夹中添加自定义模块,添加完成后在web.php中的$config中的'modules'=[id=..class=...]设置模块的开关。...3.模型操作表设置 yii的模型有Model和ActiveRecord两种,Model类用来处理基本的业务逻辑,没有数据库相关方法,如果要操作同名数据表,请继承ActiveRecord类。...在安全模式下,要进行安全验证,即每一个属性都要在rules里验证,如果没有特定规则,也要添加'safe'验证。否则验证失败,存入数据库也会失败。...16.更新和删除 更新 //查找到一条结果 $res=$this->find()->where()->one(); //对结果修改 $res->attr='xxx'; //执行更新操作 $res->update...并且注意:方法的最后一定要添加return true语句。
在TP5中,普通控制器提供一个tink\Controller对象,同时,框架也允许在应用中的控制器可以不继承think\Controller。...Yii2中,new model(),然后调用save()方法,这个model就是一个完整的数据表记录,数据表的多有字段映射成为对象属性。TP中的save()方法是把记录写入数据库。然后就没了。...create_time 在数据库中设置自动获取当前时间戳。...,因为必须先把数据从数据库中查询出来才操作,所以,更新的时候是能获取数据表内所有字段信息。...难道TP要让人家插入一条数据库在查询一次去获取数据吗? 时间差不多,后续接着更新。欢迎大家关注。
//搜索 $connection = Yii::$app->db; $user_id = Yii::$app->user->id; //print_r($user_id); /* * 报名的赛事...createCommand($sql_yhj); $result_yhj = $command_yhj->queryAll(); //print_r($result); //echo ""; //添加...test’, ‘test@test.com’) “; $command=$connection->createCommand($sql); print_r($command->execute()); //添加...查询并返回结果中的所有行 $row=$command->queryRow(); // 查询并返回结果中的第一行 $column=$command->queryColumn(); // 查询并返回结果中的第一列...2.1 execute()方法 用于数据更新(非查询)操作(INSERT, UPDATE 和 DELETE),返回的是操作受影响的记录行数 $rowCount=$command->execute();
虽然每个人的编程风格不同,但是有些建议能让你的代码更加规范和稳定,本次就我这次网站更新总结如下几点,希望对你的yii2学习和使用有所帮助。...使用迁移脚本 我说过了很多次,本篇还是要说一次,对于一个yii2程序的数据库部分请用migration来管理。 并且这些脚本应该一起放到到你的版本控制里,记住,迁移脚本一般包含两个部分。...,一般表内都会有记录生成时间和更新时间字段。...对于他们的更新请使用yii2内置的TimestampBehavior行为类,则字段数据的填充我们就无需操心了,如下代码 namespace app\models; use Yii; use yii\behaviors...); defined('YII_ENV') or define('YII_ENV', 'prod'); 报错页面 对于一个稳定的程序,报错不要紧,要紧的是报错后的处理,既然用户觉得有好又对开发人员有帮助
领取专属 10元无门槛券
手把手带您无忧上云