php -find(),php – beforeFind()添加条件
使用beforeFind(),如果希望find使用它,则应返回已修改的$queryData数组.这是你目前的问题.
public function beforeFind($queryData) {
parent::beforeFind();
$queryData['conditions'] = array('client_id' => 2);
return $queryData;
}
但是,您还有其他一些小问题可能会导致您遇到问题.
>您不应该在beforeFind()中直接设置条件,而是添加条件.如果你打电话给有条件的发现怎么办?考虑一下:
$this->MyModel->find('first', array(
'conditions' => array(
'MyModel.active' => 1
)
));
您希望find使用该条件,但也希望您的beforeFind()使用您的beforeFind()自动仅返回client_id = 2的结果.不幸的是,在你的beforeFind()中有这一行:
$queryData['conditions'] = array('client_id' => 2);
您刚刚完全覆盖了条件数组,并且丢失了MyModel.active = 1的其他条件.
>您还应确保说明条件中的字段属于哪个模型.这是一个很好的做法,如果你有两个模型有一个名为client_id的字段,那么将来会证明你的代码.您可以使用$this->别名来获取当前模型的别名,如果您为模型使用了不同的别名,这也将允许您的代码工作.
所以你的最终代码应该是:
public function beforeFind($queryData) {
parent::beforeFind();
$queryData['conditions'][$this->alias . '.client_id'] = 2;
return $queryData;
}
php -find(),php – beforeFind()添加条件相关推荐
- 基于layui的动态添加条件查询ui插件
layuiExtend 项目介绍 最近做一个档案系统,发现字段超多,查询页面布局不是很好弄,于是就想着干脆写一个动态添加条件的ui插件. 因为是用的layui框架写的系统,所以就直接基于layui编写 ...
- Mysql SQL语句执行更新或者插入添加条件判断
Mysql SQL语句执行更新或者插入添加条件判断 – 更新操作 – INSERT INTO materials (ID,Name,Remaining,Total) VALUES (1,'SolidW ...
- JPA - @Where注解 - 添加条件查询
目录 前言 具体实现 前言 这里介绍@Where注解给Entity统一添加条件查询. 具体实现 Product.java @Entity @Getter @Setter @Where(clause = ...
- 查询添加条件_035 JAVA-MySQL 约束、DML操作(增改删)、事务处理、查询数据
MySQL 中的约束 约束类型 : • 非空约束(not null) • 唯一性约束(unique) • 主键约束(primary key) PK • 外键约束(foreign key) FK • 检 ...
- 查询添加条件_从文件夹中提取符合条件的记录,只需一键
小伙伴们好啊,今天老祝要和大家分享一个实用的数据查询技巧.要根据指定的关键字,从文件夹中动态提取出全部记录. 先来看数据源,在快递寄送信息表的文件夹中,存放了多个结构一致的工作簿: 打开一个工作簿看看 ...
- 根据某个字段判断是否添加条件
描述:当字段Column1不为空时,增加条件condition select *from tablewhere (OtherCondition)and (Column1 is NULL or (Col ...
- nc 自定义参照 以及如何在编辑后事件中添加条件
1.首先需要在数据库中注册一条数据 数据库注册 参照类编辑完后,需要到数据库bd_refinfo表中注册参照类信息.数据库注册SQL语句如下: INSERT INTO bd_refinfo (code ...
- mysql inner join where_详解mysql 使用left join添加where条件的问题分析
当前需求: 有group和factor两张表,一个group对应多个factor,现在想查询有效的group和对应的有效的factor,两个表都有isDel逻辑删除标志. 最开始的错误写法一: SEL ...
- python 循环内部添加多个条件判断会出现越界
1.循环遍历数组是,想添加条件修改时,只删除第一个 # -*- coding: utf-8 -*- a=[11,22,33,44,55]for i in a:if i == 11 or i ==22: ...
最新文章
- Three levels at which any machine carrying out an Information-Processing task must be understood
- Python Excel 操作 | xlrd+xlwt 模块笔记
- Mysql索引底层实现
- 5分钟了解 Python 中的super函数是如何实现继承的
- java:LocalDate计算两个日期之间的天数
- Getting Installation aborted (Status 7) ApplyParsePerms: lsetfilecon of /syst...【转】
- java ready()_Java.io.BufferedReader.ready()方法实例
- 诗和远方:无题(五十一)
- Benchmark简介
- 【项目知识点】Vue中实现扫描二维码获取信息
- 微信小程序——定位(根据经纬度算距离)
- Chrome 80 Cookie跨域 Samesite Lax 的错误
- 计算机基础——4.1 数字通信入门
- Android开发中自定义表情并发送出去之经典的发送表情
- IIS站点出现503错误。
- 可靠性设计原则1000条
- AD生成BOM表_材料清单 (Bill of Material)
- 一只小蜜蜂... (JAVA)
- POE网络变压器:谈谈网络变压器POE最新标准POE bt及需要关注的三个点
- [C] 将小时转化为时分秒