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 相关文章推荐
基于mysql的论坛(1)
Oct 09 PHP
PHP中根据IP地址判断城市实现城市切换或跳转代码
Sep 04 PHP
php获取通过http协议post提交过来xml数据及解析xml
Dec 16 PHP
PHP实现扎金花游戏之大小比赛的方法
Mar 10 PHP
php单一接口的实现方法
Jun 20 PHP
详解WordPress开发中过滤属性以及Sql语句的函数使用
Dec 25 PHP
微信开发之网页授权获取用户信息(二)
Jan 08 PHP
PHP的Laravel框架中使用AdminLTE模板来编写网站后台界面
Mar 21 PHP
Zend Framework入门教程之Zend_View组件用法示例
Dec 09 PHP
PHP后台微信支付和支付宝支付开发
Apr 28 PHP
PHP Cli 模式设置进程名称的方法
Jun 12 PHP
PHP pthreads v3使用中的一些坑和注意点分析
Feb 21 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控制网页过期时间的代码
2008/09/28 PHP
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
2014/06/10 PHP
php中二分法查找算法实例分析
2016/09/22 PHP
PHP获取HTTP body内容的方法
2018/12/31 PHP
Apply an AutoFormat to an Excel Spreadsheet
2007/06/12 Javascript
语义化 H1 标签
2008/01/14 Javascript
为jquery.ui.dialog 增加“自动记住关闭时的位置”的功能
2009/11/24 Javascript
js 屏蔽鼠标右键脚本附破解方法
2009/12/03 Javascript
JQuery从头学起第二讲
2010/07/04 Javascript
js+div实现图片滚动效果代码
2014/02/10 Javascript
关于js里的this关键字的理解
2015/08/17 Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
2015/11/13 Javascript
jQuery实现页面评论栏中访客信息自动填写功能的方法
2016/05/23 Javascript
jQuery获取file控件中图片的宽高与大小
2016/08/04 Javascript
微信小程序  自定义创建详细介绍
2016/10/27 Javascript
JavaScript中object和Object的区别(详解)
2017/02/27 Javascript
基于JavaScript实现活动倒计时效果
2017/04/20 Javascript
用javascript获取任意颜色的更亮或更暗颜色值示例代码
2017/07/21 Javascript
jQuery实现table表格信息的展开和缩小功能示例
2018/07/21 jQuery
JS实现Cookie读、写、删除操作工具类示例
2018/08/28 Javascript
Vue.set 全局操作简单示例
2019/09/19 Javascript
python连接mongodb操作数据示例(mongodb数据库配置类)
2013/12/31 Python
Python使用win32com模块实现数据库表结构自动生成word表格的方法
2018/07/17 Python
matplotlib实现热成像图colorbar和极坐标图的方法
2018/12/13 Python
在Pycharm中调试Django项目程序的操作方法
2019/07/17 Python
pyqt5数据库使用详细教程(打包解决方案)
2020/03/25 Python
Python 整行读取文本方法并去掉readlines换行\n操作
2020/09/03 Python
python 6种方法实现单例模式
2020/12/15 Python
canvas学习和滤镜实现代码
2018/08/22 HTML / CSS
美国专营婴幼儿用品的购物网站:buybuy BABY
2017/01/01 全球购物
Under Armour安德玛中国官网:美国高端运动科技品牌
2018/03/09 全球购物
意大利时尚精品店:Nugnes 1920
2020/02/10 全球购物
地球鞋加拿大官网:Earth Shoes Canada
2020/11/17 全球购物
浅谈如何写好演讲稿?
2019/06/12 职场文书
Python3中最常用的5种线程锁实例总结
2021/07/07 Python
MySql子查询IN的执行和优化的实现
2021/08/02 MySQL