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加入ftp扩展的解决方法
Feb 07 PHP
phpExcel中文帮助手册之常用功能指南
Aug 18 PHP
PHP计算百度地图两个GPS坐标之间距离的方法
Jan 09 PHP
php实现读取和写入tab分割的文件
Jun 01 PHP
在Mac上编译安装PHP7的开发环境
Jul 28 PHP
php网页版聊天软件实现代码
Aug 12 PHP
使用ThinkPHP的自动完成实现无限级分类实例详解
Sep 02 PHP
php抽象方法和抽象类实例分析
Dec 07 PHP
轻松实现php文件上传功能
Feb 17 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
Dec 21 PHP
yii2 在控制器中验证请求参数的使用方法
Jun 19 PHP
PHP cookie与session会话基本用法实例分析
Nov 18 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持久连接mysql_pconnect()函数使用介绍
2012/02/05 PHP
php curl的深入解析
2013/06/02 PHP
部署PHP项目应该注意的几点事项分享
2013/12/20 PHP
PHP永久登录、记住我功能实现方法和安全做法
2015/04/27 PHP
php实现mysql数据库分表分段备份
2015/06/18 PHP
php自定义函数实现二维数组按指定key排序的方法
2016/09/29 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
2017/03/10 PHP
JavaScript格式化数字的函数代码
2010/11/30 Javascript
JS 如何获取radio选中后的值及不选择取radio的值
2013/10/28 Javascript
框架页面高度自动刷新的Javascript脚本
2013/11/01 Javascript
Javascript实现苹果悬浮虚拟按钮
2016/04/10 Javascript
解决jQuery ajax请求在IE6中莫名中断的问题
2016/06/20 Javascript
Node.js读写文件之批量替换图片的实现方法
2016/09/07 Javascript
解析JavaScript实现DDoS攻击原理与保护措施
2016/12/26 Javascript
微信小程序 网络请求(post请求,get请求)
2017/01/17 Javascript
基于Vue过渡状态实例讲解
2017/09/14 Javascript
vue多种弹框的弹出形式的示例代码
2017/09/18 Javascript
基于vue展开收起动画的示例代码
2018/07/05 Javascript
JavaScript组合模式---引入案例分析
2020/05/23 Javascript
详解vue3中组件的非兼容变更
2021/03/03 Vue.js
Python中文件遍历的两种方法
2014/06/16 Python
深入理解python函数递归和生成器
2016/06/06 Python
python+requests+unittest API接口测试实例(详解)
2017/06/10 Python
Python实现的堆排序算法示例
2018/04/29 Python
基于pip install django失败时的解决方法
2018/06/12 Python
Python实现栈的方法详解【基于数组和单链表两种方法】
2020/02/22 Python
Python字符串格式化f-string多种功能实现
2020/05/07 Python
Python包和模块的分发详细介绍
2020/06/19 Python
荷兰网上药店:Drogisterij.net
2019/09/03 全球购物
荷兰睡眠专家:Beter Bed
2020/11/23 全球购物
土木工程专业大学毕业生求职信
2013/10/13 职场文书
客服主管岗位职责
2013/12/13 职场文书
研究生毕业自我鉴定范文
2014/03/27 职场文书
微笑服务标语
2014/06/24 职场文书
七年级作文之英语老师
2019/10/28 职场文书
MySQL如何快速创建800w条测试数据表
2022/03/17 MySQL