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 相关文章推荐
PHPMailer邮件类利用smtp.163.com发送邮件方法
Sep 11 PHP
PHP 错误之引号中使用变量
May 04 PHP
PHP 面向对象 final类与final方法
May 05 PHP
php引用地址改变变量值的问题
Mar 23 PHP
php实现的漂亮分页方法
Apr 17 PHP
linux下编译安装memcached服务
Aug 03 PHP
搭建基于Docker的PHP开发环境的详细教程
Jul 01 PHP
PHP实现的Redis多库选择功能单例类
Jul 27 PHP
phpStudy2016 配置多个域名期间遇到的问题小结
Oct 19 PHP
PHP实现单条sql执行多个数据的insert语句方法
Oct 11 PHP
浅谈laravel-admin form中的数据,在提交后,保存前,获取并进行编辑
Oct 21 PHP
TP5框架简单登录功能实现方法示例
Oct 31 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中curl_multi的应用
2013/07/17 PHP
ThinkPHP页面跳转success与error方法概述
2014/06/25 PHP
分享PHP计算两个日期相差天数的代码
2015/12/23 PHP
Yii中表单用法实例详解
2016/01/05 PHP
php简单实现单态设计模式的方法分析
2017/07/28 PHP
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
PHP微信企业号开发之回调模式开启与用法示例
2017/11/25 PHP
php+js实现倒计时功能
2014/06/02 Javascript
js跨域请求数据的3种常用的方法
2015/12/01 Javascript
JavaScript中数组Array方法详解
2017/02/27 Javascript
AngularJS实现表单元素值绑定操作示例
2017/10/11 Javascript
微信小程序之判断页面滚动方向的示例代码
2018/08/30 Javascript
Vue.js 时间转换代码及时间戳转时间字符串
2018/10/16 Javascript
详解基于Vue/React项目的移动端适配方案
2019/08/23 Javascript
微信小程序select下拉框实现源码
2019/11/08 Javascript
vue a标签点击实现赋值方式
2020/09/07 Javascript
深入解析Python中的线程同步方法
2016/06/14 Python
python使用SMTP发送qq或sina邮件
2017/10/21 Python
django 按时间范围查询数据库实例代码
2018/02/11 Python
利用pandas读取中文数据集的方法
2018/07/25 Python
Django进阶之CSRF的解决
2018/08/01 Python
python用opencv批量截取图像指定区域的方法
2019/01/24 Python
Pytorch基本变量类型FloatTensor与Variable用法
2020/01/08 Python
解决python cv2.imread 读取中文路径的图片返回为None的问题
2020/06/02 Python
python openCV实现摄像头获取人脸图片
2020/08/20 Python
10分钟理解CSS3 FlexBox弹性布局
2018/12/20 HTML / CSS
html5 冒号分隔符对齐的实现
2019/07/31 HTML / CSS
初中政治教学反思
2014/01/17 职场文书
新闻编辑自荐书范文
2014/02/12 职场文书
党建目标管理责任书
2014/07/25 职场文书
夫妻分居协议书范文
2014/11/26 职场文书
2014年工作总结与下年工作计划
2014/11/27 职场文书
十岁生日答谢词
2015/01/05 职场文书
美甲店的创业计划书模板
2019/08/23 职场文书
详解Python函数print用法
2021/06/18 Python
DSP接收机前端设想
2022/04/05 无线电