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 相关文章推荐
PHP.MVC的模板标签系统(一)
Sep 05 PHP
php 代码优化的42条建议 推荐
Sep 25 PHP
使用XDebug调试及单元测试覆盖率分析
Jan 27 PHP
比较好用的PHP防注入漏洞过滤函数代码
Apr 11 PHP
memcache一致性hash的php实现方法
Mar 05 PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
Apr 07 PHP
php提交post数组参数实例分析
Dec 17 PHP
PHP批量去除BOM头内容信息代码
Mar 11 PHP
实例分析PHP将字符串转换成数字的方法
Jan 27 PHP
laravel实现上传图片并在页面显示的例子
Oct 14 PHP
PHP 枚举类型的管理与设计知识点总结
Feb 13 PHP
再谈Yii Framework框架中的事件event原理与应用
Apr 07 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数据库连接
2006/10/09 PHP
PHP mail 通过Windows的SMTP发送邮件失败的解决方案
2009/05/27 PHP
php控制linux服务器常用功能 关机 重启 开新站点等
2012/09/05 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
用Laravel Sms实现laravel短信验证码的发送的实现
2018/11/29 PHP
javascript 实现父窗口引用弹出窗口的值的脚本
2007/08/07 Javascript
超棒的javascript页面顶部卷动广告效果
2007/12/01 Javascript
jQuery获取地址栏参数插件(模仿C#)
2010/10/26 Javascript
js获取单选框或复选框值及操作
2012/12/18 Javascript
基于jQuery实现图片的前进与后退功能
2013/04/24 Javascript
Jquery仿IGoogle实现可拖动窗口示例代码
2014/08/22 Javascript
JS烟花背景效果实现方法
2015/03/03 Javascript
微信小程序的日期选择器的实例详解
2017/09/29 Javascript
基于vue cli重构多页面脚手架过程详解
2018/01/23 Javascript
微信小程序实现登录遮罩效果
2018/11/01 Javascript
使用p5.js临摹动态图片
2019/11/04 Javascript
使用Node.js实现base64和png文件相互转换的方法
2020/03/11 Javascript
[01:23]2014DOTA2国际邀请赛 球迷无处不在Ti现场世界杯受关注
2014/07/10 DOTA
Python开发WebService系列教程之REST,web.py,eurasia,Django
2014/06/30 Python
python更新列表的方法
2015/07/28 Python
利用aardio给python编写图形界面
2017/08/21 Python
python正则表达式之对号入座篇
2018/07/24 Python
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
2019/08/23 Python
Win10下安装并使用tensorflow-gpu1.8.0+python3.6全过程分析(显卡MX250+CUDA9.0+cudnn)
2020/02/17 Python
浅析Python面向对象编程
2020/07/10 Python
python实现取余操作的简单实例
2020/08/16 Python
45个非常奇妙的CSS3 特性应用示例
2012/01/01 HTML / CSS
巴西化妆品商店:Lojas Rede
2019/07/26 全球购物
爱尔兰橄榄球店:Irish Rugby Store
2019/12/05 全球购物
请介绍一下Ant
2016/07/22 面试题
简述安装Slackware Linux系统的过程
2012/05/08 面试题
面试感谢信范文
2015/01/22 职场文书
单方投资意向书
2015/05/11 职场文书
申论不会写怎么办?教您掌握这6点思维和原则
2019/07/17 职场文书
Vue监视数据的原理详解
2022/02/24 Vue.js
Tomcat安装使用及部署Web项目的3种方法汇总
2022/08/14 Servers