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
利用文件属性结合Session实现在线人数统计
Oct 09 PHP
PHP中将数组转成XML格式的实现代码
Aug 08 PHP
PHP中全局变量global和$GLOBALS[]的区别分析
Aug 06 PHP
Linux环境下搭建php开发环境的操作步骤
Jun 17 PHP
php阻止页面后退的方法分享
Feb 17 PHP
php获取从html表单传递数组的方法
Mar 20 PHP
php mysqli查询语句返回值类型实例分析
Jun 29 PHP
php实现异步将远程链接上内容(图片或内容)写到本地的方法
Nov 30 PHP
yii2中LinkPager增加总页数和总记录数的实例
Aug 28 PHP
ThinkPHP5.0框架实现切换数据库的方法分析
Oct 30 PHP
WordPress伪静态规则设置代码实例
Dec 10 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 飞信好友免费短信API接口开源版
2010/07/22 PHP
PHP修改session_id示例代码
2014/01/08 PHP
php中常量DIRECTORY_SEPARATOR用法深入分析
2014/11/14 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
免费空间广告万能消除代码
2006/09/04 Javascript
HTML 自动伸缩的表格Table js实现
2009/04/01 Javascript
JQuery UI皮肤定制
2009/07/27 Javascript
用客户端js实现带省略号的分页
2013/04/27 Javascript
Ubuntu中搭建Nodejs开发环境过程分享
2014/06/01 NodeJs
jQuery插件EnPlaceholder实现输入框提示文字
2015/06/05 Javascript
Vue.js绑定HTML class数组语法错误的原因分析
2016/10/19 Javascript
利用jQuery插件imgAreaSelect实现获得选择域的图像信息
2016/12/02 Javascript
详解使用vue-router进行页面切换时滚动条位置与滚动监听事件
2017/03/08 Javascript
MvcPager分页控件 适用于Bootstrap
2017/06/03 Javascript
vue-cli下的vuex的简单Demo图解(实现加1减1操作)
2018/02/26 Javascript
Vue使用vue-recoure + http-proxy-middleware + vuex配合promise实现基本的跨域请求封装
2019/10/21 Javascript
微信小程序实现图片压缩
2019/12/03 Javascript
[01:07:41]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python爬虫框架talonspider简单介绍
2017/06/09 Python
python topN 取最大的N个数或最小的N个数方法
2018/06/04 Python
Python增强赋值和共享引用注意事项小结
2019/05/28 Python
用python中的matplotlib绘制方程图像代码
2019/11/21 Python
Selenium基于PIL实现拼接滚动截图
2020/04/10 Python
python列表的逆序遍历实现
2020/04/20 Python
利用PyTorch实现VGG16教程
2020/06/24 Python
CSS3弹性布局内容对齐(justify-content)属性使用详解
2017/07/31 HTML / CSS
html5简介_动力节点Java学院整理
2017/07/07 HTML / CSS
巴西24小时在线药房:Droga Raia
2020/05/12 全球购物
消防安全管理制度
2014/02/01 职场文书
房地产活动策划方案
2014/05/14 职场文书
奥巴马胜选演讲稿
2014/05/15 职场文书
内科护士节演讲稿
2014/09/11 职场文书
煤矿安全保证书
2015/02/27 职场文书
python缺失值的解决方法总结
2021/06/09 Python
SQL SERVER触发器详解
2022/02/24 SQL Server
英国数字版游戏销量周榜公布 《小缇娜的奇幻之地》登顶
2022/04/03 其他游戏