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执行速度全攻略(上)
Oct 09 PHP
php压缩多个CSS为一个css的代码并缓存
Apr 21 PHP
php 记录进行累加并显示总时长为秒的结果
Nov 04 PHP
在PHP中设置、使用、删除Cookie的解决方法
May 06 PHP
PHP中怎样保持SESSION不过期 原理及方案介绍
Aug 08 PHP
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
Sep 28 PHP
php实现指定字符串中查找子字符串的方法
Mar 17 PHP
PHP中的数组处理函数实例总结
Jan 09 PHP
php实现的操作excel类详解
Jan 15 PHP
Laravel框架实现简单的学生信息管理平台案例
May 07 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
Nov 23 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+JS无限级可伸缩菜单详解(简单易懂)
2007/01/02 PHP
PHP5中使用PDO连接数据库的方法
2010/08/01 PHP
PHP学习之整理字符串
2011/04/17 PHP
又拍云异步上传实例教程详解
2016/04/19 PHP
最新28个很棒的jQuery 教程
2011/05/28 Javascript
查看源码的工具 学习jQuery源码不错的工具
2011/12/26 Javascript
javascript相等运算符与等同运算符详细介绍
2013/11/09 Javascript
Javascript基础教程之数据类型 (数值 Number)
2015/01/18 Javascript
JS函数this的用法实例分析
2015/02/05 Javascript
JS实现的仿东京商城菜单、仿Win右键菜单及仿淘宝TAB特效合集
2015/09/28 Javascript
JavaScript判断DIV内容是否为空的方法
2016/01/29 Javascript
AngularJS入门教程之ng-checked 指令详解
2016/08/01 Javascript
Node.js connect ECONNREFUSED错误解决办法
2016/09/15 Javascript
jQuery如何防止Ajax重复提交
2016/10/14 Javascript
使用ReactJS实现tab页切换、菜单栏切换、手风琴切换和进度条效果
2016/10/17 Javascript
Nodejs基于LRU算法实现的缓存处理操作示例
2017/03/17 NodeJs
jQuery图片查看插件Magnify开发详解
2017/12/25 jQuery
webpack源码之loader机制详解
2018/04/06 Javascript
JavaScript两种计时器的实例讲解
2019/01/31 Javascript
解决 window.onload 被覆盖的问题方法
2020/01/14 Javascript
JavaScript数组排序功能简单实现
2020/05/14 Javascript
JS实现联想、自动补齐国家或地区名称的功能
2020/07/07 Javascript
JS如何操作DOM基于表格动态展示数据
2020/10/15 Javascript
python基础教程之自定义函数介绍
2014/08/29 Python
对于Python中RawString的理解介绍
2016/07/07 Python
wxPython实现窗口用图片做背景
2018/04/25 Python
Python实现图片添加文字
2019/11/26 Python
如何在keras中添加自己的优化器(如adam等)
2020/06/19 Python
使用tkinter实现三子棋游戏
2021/02/25 Python
用CSS3实现Win8风格的方格导航菜单效果
2013/04/10 HTML / CSS
日本热销NO.1胶原蛋白冻:Aishitoto爱希特多
2019/06/20 全球购物
测绘工程专业个人自我评价
2013/12/01 职场文书
学校出纳员岗位职责
2014/03/18 职场文书
咖啡厅商业计划书
2014/09/15 职场文书
2016学习雷锋精神活动倡议书
2015/04/27 职场文书
《秋天的图画》教学反思
2016/02/19 职场文书