yii2 AR需要注意的地方】的更多相关文章

$model::find(['id'=>1])->one();和$model::findOne(1); 返回的都是一个Obj不能使用foreach遍历,其他都是返回对象数组可以用foreach遍历…
Yii2 AR find用法 (2016-05-18 12:06:01) 转载▼     User::find()->all();    返回所有数据   User::findOne($id);   返回 主键 id=1  的一条数据   User::find()->where(['name' => '小伙儿'])->one();   返回 ['name' => '小伙儿'] 的一条数据   User::find()->where(['name' => '小伙儿'…
有A,B两个表对应A_AR,B_AR两个模型B表interval_id对应A表id现在要查a表的数据,且没有code为a的子数据要求使用yii2的AR模型写查询: A_AR::find()->where([ 'exists', B_AR::find()->where("interval_id={{A}}.id")->andWhere(['code' => 'a'])]); 红色部分需要这样写,如果写成 ->where(['interval_id' =>…
最近在做Yii2的项目时, 发现了一个yii2 自带的Ar模型会自动对搜索出来的字段去重. 默认去重字段: id,  其他字段暂没发现 1. 例如: public function fields { //aboutClass表的ID id => about_class_id } 如果搜索关系是一对多的关系,那么搜索出来的about_class_id 有重复,这时你给about_class_id 命名为id,因为yii2对id字段默认去重,就会出现数据条数变少的情况 解决方案: public fu…
数据库操纵: 基础知识:数据库基础 查询语句: 使用yii migrate管理.生成数据库 Yii2 AR find用法 Yii2.0 对数据库 查询的一些简单的操作 修改语句: Yii 修改数据的两种方式 yii2权限控制: 深入浅析Yii admin的权限控制 yii2-admin 插件使用简要教程…
增强现实技术(Augmented Reality,简称 AR),是一种实时地计算摄影机影像的位置及角度并加上相应图像.视频.3D模型的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动. 我们目前开发的AR专用汉明码是7X7的,外围用黑块包围,实际上就是5X5的一个汉明码. 下面简略的说一下汉明码的编码规则: 5X5的汉明码每一行5位,有3位校验位,2位数据位,具体是第1,3,5位是校验位,第2,4位是数据位 5X5的汉明码每一行仅有2个数据位,只能表示4种数据:00,01,10,1…
虽 然Yii DAO可以处理事实上任何数据库相关的任务,但很可能我们会花费90%的时间用来编写一些通用的SQL语句来执行CRUD操作(创建,读取,更新和删除). 同时我们也很难维护这些PHP和SQL语句混合的代码,要解决这些问题,我们可以使用Active Record.    Active Record(AR)是一种流行的对象关系映射(ORM)技术.每个AR类代表一个数据表(或视图),其字段作为AR类的属性,一个AR实例代表在表中的 一行.常见的CRUD操作被作为AR类的方法执行. 于是,我们可…
应用举例 yii\db\ActiveRecord //获取 Connection 实例 public static function getDb() { return Yii::$app->getDb(); } //获取 ActiveQuery 实例 public static function find() { return Yii::createObject(ActiveQuery::className(), [get_called_class()]); } 这里用到了静态工厂模式. 静态工…
应用举例 yii\db\ActiveRecord //获取 Connection 实例 public static function getDb() { return Yii::$app->getDb(); } //获取 ActiveQuery 实例 public static function find() { return Yii::createObject(ActiveQuery::className(), [get_called_class()]); } 这里用到了静态工厂模式. 静态工…
本文主要记录本人从学习yii2到使用yii2开发项目过程中遇到的一些问题以及解决方法和知识点总结. 1. AR类关联哪个数据表? 默认情况下,AR类会根据类名称关联和类名相关的数据表,如:类名为Country时,关联数据表为country: 类名为CountrySearch时,关联数据表为country_search.如果在数据库配置中通过"tablePrefix"参数配置了数据 表前缀,默认还会加上表前缀.若需要关联的数据表名称和AR类名称不存在这种映射关系,则需要实现tableNa…
yii2增删改查 // 返回 id 为 1 的客户 $customer = Customer::findOne(1); // 返回 id 为 1 且状态为 *active* 的客户 $customer = Customer::findOne([ 'id' => 1, 'status' => Customer::STATUS_ACTIVE, ]); // 返回id为1.2.3的一组客户 $customers = Customer::findAll([1, 2, 3]); // 返回所有状态为 &…
yii2.0的ActiveRecord是可以嵌套子查询的. 比如从一个子查询里面筛选数据. 首先实例化出来一个Query对象,代表子查询. $subQuery = new \yii\db\Query(); $subQuery->from('tableA')->where(['>=', 'id', 10]); 假如UserModel是一个AR: $list = UserModel::find()->from(['tmpA' => $subQuery])->all(); f…
本人新手, 刚接触Yii, 记录下遇到的坑, 大神请绕道/ 1. //插入数据到数据库, 需要 new 一下,设置属性: $info = new BasicInfo(); $info -> setAttributes($data); new 之后  这里 $data 就可以是一个数组 但如果是更新数据的话(不new), 只能一个一个压入数据.  //如果不对的话, 请吐槽, 必须吐槽!~ $info = BasicInfo::findOne($data['id']); if($data == $…
如果save()返回true, 但是数据没有保存成功,则应该是开启了事务且已经回滚 如果save()返回false, 则使用$model->errors查看错误原因 可以设置$model的场景,对具体的场景进行验证; 没有指定场景的验证规则会在所有的场景通用 save()方法有两个参数,第一个参数为是否开启验证,第二个字段为验证的字段,但是会调用beforeBValidate() 源码如下所示: public function save($runValidation = true, $attri…
作者:白狼 出处:http://www.manks.top/yii2_many_ar_relation_search.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 一个老生常谈的问题.最近通过群里的反馈,觉得很多人还是没有去理解这个问题.今天把这个问题讲明白了,看看yii2 ActiveRecord是怎么个多表关联以及如何去优化这个关联. 场景需求: 假设我们有一张用户表user和一张用户渠道表auth,两张数…
众所周知,yii的三大特性是:属性.事件.行为,上一篇博文简单讲解了yii中的属性,本文接着讲讲yii的事件. 事件是代码解耦的一种方式,设计业务流程的一种模式.在yii2.0中,通过Yii\base\Component继承yii\base\Object,重载__get().__set()方法,引入了事件和行为,使得开发变得十分方便.然而,在方便开发的同时也牺牲了一定的效率,所以若不需要使用事件和行为,可不必继承Component而选择继承Object,Object的效率更接近原生的PHP类.…
yii2 ActiveRecord多表关联以及多表关联搜索的实现 一个老生常谈的问题.最近通过群里的反馈,觉得很多人还是没有去理解这个问题.今天把这个问题讲明白了,看看yii2 ActiveRecord是怎么个多表关联以及如何去优化这个关联. 场景需求: 假设我们有一张用户表user和一张用户渠道表auth,两张数据表通过user.id和auth.uid进行一对一关联.现需要在user列表展示auth表的来源渠道source,且该渠道可搜索. 首先我们先通过gii生成user和auth系列相关的…
原文:Yii2.0的乐观锁与悲观锁 Web应用往往面临多用户环境,这种情况下的并发写入控制, 几乎成为每个开发人员都必须掌握的一项技能. 在并发环境下,有可能会出现脏读(Dirty Read).不可重复读(Unrepeatable Read). 幻读(Phantom Read).更新丢失(Lost update)等情况.具体的表现可以自行搜索. 为了应对这些问题,主流数据库都提供了锁机制,并引入了事务隔离级别的概念. 这里我们都不作解释了,拿这些关键词一搜,网上大把大把的. 但是,就于具体开发过…
近期阿里搞了各LBS+AR实景的红包玩法,小伙伴们在公司里都玩疯了~ 有时候为了抢一个红包,会跑到另一个地方去拍照,虽然略麻烦,但整体的互动还是很有意思的. 不过对于机智的前端童鞋来说,只需要简单的一段代码就能破解AR红包(当然成功率也不是100%). 破解原理见<上线仅一天:支付宝AR红包惨遭技术流破解>,感谢这位设计师童鞋. 我们要做的事情其实很简单 —— 把系统自带的小横条都去掉,去掉的部分取其附近的图片内容来填充,最终得到的效果图有不小的几率会被识别为匹配成功: 对于上图中间那块区域,…
之前写了一篇yii2获取登录前的页面url地址的文章,然后发现自己对于网站实现微信扫码登录功能的实现不是很熟悉,所以,我会写2-3篇的文章来描述下一个站点如何实现微信扫码登录的功能,来复习下微信扫码登录网站的基本开发过程和需要注意的地方.这是第一篇,主要是描述如何在自己的登录页面内嵌入登录二维码.按照微信开放平台开发者文档网站应用微信登录开发指南中的一步一步来即可. 1,要扫码登录首先要有码 先看看文档中给提供的嵌入二维码的示例代码: 需要先引入微信提供的js文件 <script src="…
作者:白狼 出处:http://www.manks.top/yii2_rbac_rule.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 在我们之前yii2搭建后台以及rbac详细教程中,不知道你曾经疑惑过没有一个问题,rule表是做什么的,为什么在整个过程中我们都没有涉及到这张表? 相信我不说,部分人也都会去尝试,或百度或google,到头来也会竹篮打水,这部分讲解的内容少之又少啊! 对于一般的权限系统而言,我…
作者:白狼 出处:http://www.manks.top/document/easy_blog_manage_system.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 1.简介 快速入门指南会对Yii2框架做一个基本介绍,包括数据库迁移.gii操作.AR模型.路由.验证.视图等等.如果你是个Yii2新手甚至之前对PHP框架也很陌生,那么这里将会成为你的良好起点.如果你已经使用并且掌握了Yii2框架基础,可以…
自己总结的yii2 advanced 版本的简单的增删改查,希望对大家有所帮助 1.gii生成的actionCreate()方法中 获取插入语句的id $id = $model->attributes['id']; //或$model->id; 2.展示列表添加多选框 并设置属性 ['class' => 'yii\grid\CheckboxColumn', 'checkboxOptions' => function($searchModel){ return ['aid' =>…
一.概述 1.1选题背景 随着时代的发展,人们的生活节奏越来越快,生活质量也越来越高,但却在繁忙之中忽略或者忘记了关心自己成长时代最重要或者最正确的事情和道理.虽然现在有很多社交平台,如微博,微信,facebook等,这些都是人们在表达自己的看法和感受,却没有人告诉你这个年龄你应该懂得道理,很多父母可能知道这些事情,但是却不善于对孩子们表达.也有很多住校生,留守儿童,他们见到父母或者长辈的次数可能很少,就缺少了最直接的关心和陪伴.也有很多孩子小时候可能会犯一些错误,做一些错的事情,等到长大后就会…
1,打印ar或者query的原始sql: $query = (new \yii\db\Query())->select(['a.username','b.item_name'])->from(['a' => 'user'])->leftJoin(['b' => 'auth_assignment'], 'a.id = b.user_id')->where(['a.username' => 'admin'])->andWhere(['between', 'a.c…
环境配置: 开启服务器伪静态 本处以apache为例,查看apache的conf目录下httpd.conf,找到下面的代码 LoadModule rewrite_module modules/mod_rewrite.so 将其前面的#去掉,如果没有找到则添加进去. 找到一下代码 <Directory "C:/phpStudy/Apache/cgi-bin"> AllowOverride All Options None Require all granted </Di…
作者:白狼 出处:http://www.manks.top/yii2_batch_insert.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 批量添加这个操作嘛,实际开发中说用,那肯定是要用得到的,不然你看怎么还那么多人天天没事百度这个google那个的,对吧,活生生的需要啊 我们之前写过关于yii2中如何通过gridview批量删除数据,当然,着重点在于怎么去操作gridview了,今儿我们来好好谈谈yii2…
我前几天用composer安装 一直没成功  我就用归档的方法安装了  所以这篇文字只帮助那些用归档方法安装的朋友 Yii是一个高性能的,适用于开发WEB2.0应用的PHP框架. Yii自带了丰富的功能 ,包括MVC,DAO/ActiveRecord,I18N/L10N,缓存,,身份验证和基于角色的访问控制,脚手架,测试等,可显著缩短开发时间.2.0.0版本发布于2014年10月12日.下面介绍一下Yii2.0 basic模板和高级(advanced)模板的安装. 要点: 打开dos 操作命令…
一.准备 在开始编写代码之前,我们需要思考一下:用户登陆模块,实现的是什么功能?很明显,是登陆功能,那么,登陆需要用户名和密码,我们在数据库的一张表中就应该准备好用户名和密码的字段,再思考一下,如果要实现自动登陆的功能,那么还需要什么?Cookie,是专门用于自动登陆的,所以,我们的数据表可能需要准备一个字段,专门用于储存客户端登陆所生成的cookie,这样,就能通过验证客户端和服务端的cookie是否相同来进行自动登陆了.基于以上思考,我们的数据表应该包含以下字段: id(primarykey…
除了用composer 包管理组件的方式外 我们还可以使用 直接最原始的加载方式---超级简单 1.PHPExcel上下载最新的PHPExcel http://phpexcel.codeplex.com/ 把下载包解压 将其中的class文件夹复制 到yii2下 common/widgets/目录下 将Class改名为phpexcel (因为包是直接从官网上下载的 并不支持 yii 的自动加载功能所以命名空间也省得写了) 2.在需要用到phpexcel的地方 将phpexcel 文件夹下的PHP…