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 相关文章推荐
用phpmyadmin更改mysql5.0登录密码
Mar 25 PHP
PHP Undefined index报错的修复方法
Jul 17 PHP
PHP curl 获取响应的状态码的方法
Jan 13 PHP
php mail to 配置详解
Jan 16 PHP
php中base64_decode与base64_encode加密解密函数实例
Nov 24 PHP
PHP生成指定随机字符串的简单实现方法
Apr 01 PHP
PHP中4种常用的抓取网络数据方法
Jun 04 PHP
jquery+thinkphp实现跨域抓取数据的方法
Oct 15 PHP
PHP开发实现微信退款功能示例
Nov 25 PHP
PHP实现模拟http请求的方法分析
Dec 20 PHP
为Plesk PHP7启用Oracle OCI8扩展方法总结
Mar 29 PHP
PHP实现的文件浏览器功能简单示例
Sep 12 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应用JSON技巧讲解
2013/02/03 PHP
基于PHP实现简单的随机抽奖小程序
2016/01/05 PHP
PHP读取、解析eml文件及生成网页的方法示例
2017/09/04 PHP
php模拟实现斗地主发牌
2020/04/22 PHP
重定向实现代码
2006/11/20 Javascript
Jquery插件 easyUI属性汇总
2011/01/19 Javascript
IE图片缓存document.execCommand("BackgroundImageCache",false,true)
2011/03/01 Javascript
JavaScript版DateAdd和DateDiff函数代码
2012/03/01 Javascript
2014 HTML5/CSS3热门动画特效TOP10
2014/12/07 Javascript
jQuery中wrapInner()方法用法实例
2015/01/16 Javascript
js实现文字跟随鼠标移动而移动的方法
2015/02/28 Javascript
JS实现可拖曳、可关闭的弹窗效果
2015/09/26 Javascript
js类式继承与原型式继承详解
2016/04/07 Javascript
jQuery旋转插件jqueryrotate用法详解
2016/10/13 Javascript
jquery事件与绑定事件
2017/03/16 Javascript
jQuery 中msgTips 顶部弹窗效果实现代码
2017/08/14 jQuery
AngularJS实现表单验证功能详解
2017/10/12 Javascript
vue 引入公共css文件的简单方法(推荐)
2018/01/20 Javascript
详解JavaScript中的数组合并方法和对象合并方法
2018/05/11 Javascript
10个最受欢迎的 JavaScript框架(推荐)
2019/04/24 Javascript
VUE解决 v-html不能触发点击事件的问题
2019/10/28 Javascript
ES6中的Javascript解构的实现
2020/10/30 Javascript
Python计算回文数的方法
2015/03/11 Python
简单解析Django框架中的表单验证
2015/07/17 Python
分享8个非常流行的 Python 可视化工具包
2019/06/05 Python
利用Python的turtle库绘制玫瑰教程
2019/11/23 Python
贝佳斯官方网站:Borghese
2020/05/08 全球购物
交通事故协议书
2014/04/15 职场文书
咖啡店创业计划书范文
2014/09/15 职场文书
区长工作作风个人整改措施
2014/10/01 职场文书
开学第一天的感想
2015/08/10 职场文书
教你快速开启Apache SkyWalking的自监控
2021/04/25 Servers
详解分布式系统中如何用python实现Paxos
2021/05/18 Python
CSS 制作波浪效果的思路
2021/05/18 HTML / CSS
Python卷积神经网络图片分类框架详解分析
2021/11/07 Python
提高系统的吞吐量解决数据库重复写入问题
2022/04/23 MySQL