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 相关文章推荐
人大复印资料处理程序_补充篇
Oct 09 PHP
php的access操作类
Apr 09 PHP
PHP autoload与spl_autoload自动加载机制的深入理解
Jun 05 PHP
ThinkPHP使用smarty模板引擎的方法
Jul 01 PHP
PHP语法自动检查的Vim插件
Aug 11 PHP
PHP中使用CURL获取页面title例子
Jan 07 PHP
微信公众平台之快递查询功能用法实例
Apr 14 PHP
php面向对象编程self和static的区别
May 08 PHP
PHP两种实现无级递归分类的方法
Mar 02 PHP
PHP添加PNG图片背景透明水印操作类定义与用法示例
Mar 12 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
Mar 26 PHP
PHP使用POP3读取邮箱接收邮件的示例代码
Jul 08 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
一个程序下载的管理程序(一)
2006/10/09 PHP
通过PHP CLI实现简单的数据库实时监控调度
2009/07/01 PHP
深入理解PHP原理之异常机制
2010/08/21 PHP
php错误提示failed to open stream: HTTP request failed!的完美解决方法
2011/06/06 PHP
PHP Class&Object -- 解析PHP实现二叉树
2013/06/25 PHP
详解WordPress开发中的get_post与get_posts函数使用
2016/01/04 PHP
joomla数据库操作示例代码
2016/01/06 PHP
PHP+sqlite数据库操作示例(创建/打开/插入/检索)
2016/05/26 PHP
PHP实现通过strace定位故障原因的方法
2018/04/29 PHP
在Laravel5中正确设置文件权限的方法
2019/05/22 PHP
Laravel 登录后清空COOKIE的操作方法
2019/10/14 PHP
jQuery 操作下拉列表框实现代码
2010/02/22 Javascript
TextArea不支持maxlength的解决办法(jquery)
2011/09/13 Javascript
扒一扒JavaScript 预解释
2015/01/28 Javascript
angularJS 中$attrs方法使用指南
2015/02/09 Javascript
JavaScript编程中布尔对象的基本使用
2015/10/25 Javascript
ionic实现滑动的三种方式
2016/08/27 Javascript
解决前后端分离 vue+springboot 跨域 session+cookie失效问题
2019/05/13 Javascript
VUE实现移动端列表筛选功能
2019/08/23 Javascript
微信小程序实现3D轮播图效果(非swiper组件)
2019/09/21 Javascript
Python设计模式之单例模式实例
2014/04/26 Python
Python中Numpy mat的使用详解
2019/05/24 Python
Python 读取 YUV(NV12) 视频文件实例
2019/12/09 Python
Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色
2020/03/09 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
2020/04/03 Python
巴西最大的体育用品商城:Netshoes巴西
2016/11/29 全球购物
Habitat家居英国官方网站:沙发、家具、照明、厨房和户外
2019/12/12 全球购物
Three Graces London官网:英国奢侈品牌
2021/03/18 全球购物
甲方资料员岗位职责
2013/12/13 职场文书
《十六年前的回忆》教学反思
2014/02/14 职场文书
个人委托函范文
2015/01/29 职场文书
2015年学校食堂工作总结
2015/04/22 职场文书
银行资信证明
2015/06/17 职场文书
2016廉政教育学习心得体会
2016/01/25 职场文书
初二数学教学反思
2016/02/17 职场文书
Win11绿屏怎么办?Win11绿屏死机的解决方法
2021/11/21 数码科技