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 相关文章推荐
ftp类(myftp.php)
Oct 09 PHP
PHP生成静态页面详解
Nov 19 PHP
smarty 原来也不过如此~~呵呵
Nov 25 PHP
浅析php数据类型转换
Jan 09 PHP
浅谈php函数serialize()与unserialize()的使用方法
Aug 19 PHP
PHP中echo,print_r与var_dump区别分析
Sep 29 PHP
php的curl封装类用法实例
Nov 07 PHP
PHP+jQuery翻板抽奖功能实现
Oct 19 PHP
Symfony2创建页面实例详解
Mar 18 PHP
Yii中CGridView禁止列排序的设置方法
Jul 12 PHP
PHP中phar包的使用教程
Jun 14 PHP
实例讲解YII2中多表关联的使用方法
Jul 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
简单了解将WordPress中的工具栏移到底部的小技巧
2015/12/31 PHP
删除Javascript Object中间的key
2014/11/18 Javascript
js实现兼容IE和FF的上下层的移动
2015/05/04 Javascript
元素绑定click点击事件方法
2015/06/08 Javascript
js实现二级菜单渐隐显示
2015/11/03 Javascript
js实现弹窗居中的简单实例
2016/10/09 Javascript
原生Javascript插件开发实践
2017/01/18 Javascript
Bootstrap输入框组件简单实现代码
2017/03/06 Javascript
Vue.js组件tab实现选项卡切换
2020/03/23 Javascript
vue脚手架中配置Sass的方法
2018/01/04 Javascript
详解如何在react中搭建d3力导向图
2018/01/12 Javascript
Express进阶之log4js实用入门指南
2018/02/10 Javascript
vue+webpack实现异步加载三种用法示例详解
2018/04/24 Javascript
vue实现禁止浏览器记住密码功能的示例代码
2021/02/03 Vue.js
[01:05:41]EG vs Optic Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
python中cPickle用法例子分享
2014/01/03 Python
Python文件夹与文件的操作实现代码
2014/07/13 Python
Python微信库:itchat的用法详解
2017/08/14 Python
Python实现的计算马氏距离算法示例
2018/04/03 Python
Django 浅谈根据配置生成SQL语句的问题
2018/05/29 Python
通过python爬虫赚钱的方法
2019/01/29 Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
2019/06/19 Python
python如果快速判断数字奇数偶数
2019/11/13 Python
html5唤起app的方法
2017/11/30 HTML / CSS
SEPHORA新西兰官方网站:购买化妆品和护肤品
2016/12/02 全球购物
德国家具购物网站:Möbel Höffner
2019/08/26 全球购物
武汉英思工程科技有限公司–ORACLE面试测试题目
2012/04/30 面试题
专科文秘应届生求职信
2013/11/18 职场文书
应用化学专业职业生涯规划书
2013/12/31 职场文书
车辆转让协议书
2014/09/24 职场文书
2014年信贷员工作总结
2014/11/18 职场文书
校园开放日新闻稿
2015/07/17 职场文书
2016年小学端午节活动总结
2016/04/01 职场文书
创业计划书详解
2019/07/19 职场文书
《鲁滨逊漂流记》之六读后感(4篇)
2019/09/29 职场文书
python 安全地删除列表元素的方法
2022/03/16 Python