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执行速率优化技巧小结
Mar 15 PHP
简单的php 验证图片生成函数
May 21 PHP
PHP计算一年多少个星期和每周的开始和结束日期
Jul 01 PHP
php简单实现无限分类树形列表的方法
Mar 27 PHP
Zend Framework实现Zend_View集成Smarty模板系统的方法
Mar 05 PHP
php 二维数组时间排序实现代码
Nov 19 PHP
浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
Mar 14 PHP
php实现与python进行socket通信的方法示例
Aug 30 PHP
thinkphp5.0自定义验证规则使用方法
Nov 16 PHP
PHP filesize函数用法浅析
Feb 15 PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
Sep 30 PHP
Laravel 错误提示本地化的实现
Oct 22 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
骨王战斗力在公会成员中排不进前五,却当选了会长,原因竟是这样
2020/03/02 日漫
PHP curl模拟浏览器采集阿里巴巴的实现代码
2011/04/20 PHP
IIS7.X配置PHP运行环境小结
2011/06/09 PHP
Fine Uploader文件上传组件应用介绍
2013/01/06 PHP
PHP输出XML格式数据的方法总结
2017/02/08 PHP
Laravel5.1 框架控制器基础用法实例分析
2020/01/04 PHP
URI、URL和URN之间的区别与联系
2006/12/20 Javascript
jquery淡化版banner异步图片文字效果切换图片特效
2014/04/08 Javascript
JavaScript实现经典排序算法之选择排序
2016/12/28 Javascript
js实现消息滚动效果
2017/01/18 Javascript
基于JavaScript+HTML5 实现打地鼠小游戏逻辑流程图文详解(附完整代码)
2017/11/02 Javascript
Next.js实现react服务器端渲染的方法示例
2019/01/06 Javascript
vue cli 3.x 项目部署到 github pages的方法
2019/04/17 Javascript
vue自定义js图片碎片轮播图切换效果的实现代码
2019/04/28 Javascript
CKEditor 4.4.1 添加代码高亮显示插件功能教程【使用官方推荐Code Snippet插件】
2019/06/14 Javascript
js实现无缝滚动双图切换效果
2019/07/09 Javascript
[04:29]2016国际邀请赛中国区预选赛Ehome战队教练采访
2016/06/27 DOTA
python基础教程项目三之万能的XML
2018/04/02 Python
selenium3+python3环境搭建教程图解
2018/12/07 Python
Python自定义一个类实现字典dict功能的方法
2019/01/19 Python
Python使用matplotlib 模块scatter方法画散点图示例
2019/09/27 Python
python3实现绘制二维点图
2019/12/04 Python
深入浅析python的第三方库pandas
2020/02/13 Python
HTML5边玩边学(1)画布实现方法
2010/09/21 HTML / CSS
Reformation官网:美国女装品牌
2018/09/14 全球购物
英国马匹装备和马术用品购物网站:Equine Superstore
2019/03/03 全球购物
宝信软件JAVA工程师面试经历
2012/08/19 面试题
Internal修饰符有什么含义
2013/07/10 面试题
怎样在 Applet 中建立自己的菜单(MenuBar/Menu)?
2012/06/20 面试题
经典演讲稿范文
2013/12/30 职场文书
生物科学专业职业规划书范文
2014/02/11 职场文书
纠风工作实施方案
2014/03/15 职场文书
汽车机电维修工求职信
2014/09/30 职场文书
校园运动会广播稿
2014/10/06 职场文书
信用卡收入证明范本
2015/06/12 职场文书
狂人日记读书笔记
2015/06/30 职场文书