Symfony查询方法实例小结


Posted in PHP onJune 28, 2017

本文实例讲述了Symfony查询方法。分享给大家供大家参考,具体如下:

1. createQuery的写法

$sql = 'SELECT COUNT(DISTINCT(g.goodsId)) FROM AppBundle:GoodsIndex g WHERE g.status = :status';
$params = array(
 'status' => GoodsIndex::STATUS_NORMAL,
);
if (!empty($keywords)) {
 $params['keywords'] = "%{$keywords}%";
 $sql .= ' AND g.keywords like :keywords ';
}
 if (!empty($warehouseIdList)) {
  $params['warehouseIdList'] = $warehouseIdList;
  $sql .= " AND g.warehouseId IN :(warehouseIdList)";
 }
$goodsNum = $this->entityManager->createQuery($sql)->setParameters($params)->getSingleScalarResult();

个人总结::是指占位符的意思,防止sql注入。所以把所有需要的参数做成数组$params里面。

2. getQuery的写法

$orderBy = 'p.'.$searchOptions['orderBy'];
$repository = $this->entityManager
 ->getRepository('AppBundle:GoodsIndex');
$query = $repository->createQueryBuilder('p');
$query->select('DISTINCT(p.goodsId)');
$query->where('p.keywords like :keywords')
 ->setParameter('keywords', "%{$searchOptions['keywords']}%")
 ->andwhere('p.status = :status')
 ->setParameter('status', GoodsIndex::STATUS_NORMAL)
 ->orderBy($orderBy, $searchOptions['order'])
 ->setFirstResult($pagination['pageSize'] * ($pagination['page'] - 1))
 ->setMaxResults($pagination['pageSize']);
if (!empty($searchOptions['warehouseIdList'])) {
 $query->andWhere($query->expr()->in('p.warehouseId', $searchOptions['warehouseIdList']));
}
$goodsIndexList = $query->getQuery()->getResult();

希望本文所述对大家基于Symfony2框架的PHP程序设计有所帮助。

PHP 相关文章推荐
FleaPHP的安全设置方法
Sep 15 PHP
php 生成WML页面方法详解
Aug 09 PHP
destoon实现会员商铺中指定会员或会员组投放广告的方法
Aug 21 PHP
smarty模板引擎基础知识入门
Mar 30 PHP
基于PHP-FPM进程池探秘
Oct 17 PHP
phpStudy 2016 使用教程详解(支持PHP7)
Oct 18 PHP
php 判断IP为有效IP地址的方法
Jan 28 PHP
Laravel获取所有的数据库表及结构的方法
Oct 10 PHP
解决Laravel无法使用COOKIE和SESSION的问题
Oct 16 PHP
php libevent 功能与使用方法详解
Mar 04 PHP
php输出形式实例整理
May 05 PHP
如何用PHP实现分布算法之一致性哈希算法
May 26 PHP
关于PHP转换超过2038年日期出错的问题解决
Jun 28 #PHP
YII2自动登录Cookie总是失效的解决方法
Jun 28 #PHP
php的常量和变量实例详解
Jun 27 #PHP
Zend Framework框架中实现Ajax的方法示例
Jun 27 #PHP
PHP用continue跳过本次循环中剩余代码的注意点
Jun 27 #PHP
PHP API接口必备之输出json格式数据示例代码
Jun 27 #PHP
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
Jun 27 #PHP
You might like
PHP图片库imagemagick安装方法
2014/09/23 PHP
Laravel 5框架学习之日期,Mutator 和 Scope
2015/04/08 PHP
PHP中使用register_shutdown_function函数截获fatal error示例
2015/04/21 PHP
php无序树实现方法
2015/07/28 PHP
jquery 插件学习(一)
2012/08/06 Javascript
javascript数据结构与算法之检索算法
2015/04/04 Javascript
快速获取/设置iframe内对象元素的几种js实现方法
2016/05/20 Javascript
JavaScript核心语法总结(推荐)
2016/06/02 Javascript
利用Node.js制作爬取大众点评的爬虫
2016/09/22 Javascript
js制作可以延时消失的菜单
2017/01/13 Javascript
扩展bootstrap的modal模态框-动态添加modal框-弹出多个modal框
2017/02/21 Javascript
jquery平滑滚动到顶部插件使用详解
2017/05/08 jQuery
基于jQuery选择器之表单对象属性筛选选择器的实例
2017/09/19 jQuery
javascript 通过键名获取键盘的keyCode方法
2017/12/31 Javascript
详解ES6 Fetch API HTTP请求实用指南
2018/11/14 Javascript
浅谈KOA2 Restful方式路由初探
2019/03/14 Javascript
JavaScript中的垃圾回收与内存泄漏示例详解
2019/05/02 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
2019/10/23 Javascript
基于ts的动态接口数据配置的详解
2019/12/18 Javascript
仅用500行Python代码实现一个英文解析器的教程
2015/04/02 Python
python判断windows系统是32位还是64位的方法
2015/05/11 Python
python获取局域网占带宽最大3个ip的方法
2015/07/09 Python
Python实现身份证号码解析
2015/09/01 Python
Python实现自动添加脚本头信息的示例代码
2016/09/02 Python
Python2.7基于笛卡尔积算法实现N个数组的排列组合运算示例
2017/11/23 Python
python MNIST手写识别数据调用API的方法
2018/08/08 Python
python3 selenium自动化 frame表单嵌套的切换方法
2019/08/23 Python
浅析使用Python搭建http服务器
2019/10/27 Python
Python 实现自动完成A4标签排版打印功能
2020/04/09 Python
Python基于smtplib模块发送邮件代码实例
2020/05/29 Python
Django:使用filter的pk进行多值查询操作
2020/07/15 Python
小米官方旗舰店:Xiaomi
2020/08/07 全球购物
大型会议接待方案
2014/03/01 职场文书
医学生就业推荐表自我鉴定
2014/03/26 职场文书
校长竞聘演讲稿
2014/05/16 职场文书
党员干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书