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 相关文章推荐
不要轻信 PHP_SELF的安全问题
Sep 05 PHP
php中对2个数组相加的函数
Jun 24 PHP
国外十大最流行的PHP框架排名
Jul 04 PHP
Yii中CArrayDataProvider和CActiveDataProvider区别实例分析
Mar 02 PHP
php语言的7种基本的排序方法
Dec 28 PHP
php实现给二维数组中所有一维数组添加值的方法
Feb 04 PHP
php中html_entity_decode实现HTML实体转义
Jun 13 PHP
ThinkPHP5.0多个文件上传后找不到临时文件的修改方法
Jul 30 PHP
PHP使用curl_multi_select解决curl_multi网页假死问题的方法
Aug 15 PHP
Laravel核心解读之异常处理的实践过程
Feb 24 PHP
php和vue配合使用技巧和方法
May 09 PHP
Yii框架页面渲染操作实例详解
Jul 19 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
ThinkPHP独立分组使用的注意事项
2014/11/25 PHP
php实现图片以base64显示的方法
2016/10/13 PHP
PHP基于SMTP协议实现邮件发送实例代码
2017/04/27 PHP
phpcms配置列表页以及获得文章发布时间
2017/07/04 PHP
Javascript 获取滚动条位置等信息的函数
2009/09/08 Javascript
javascript实现的在当前窗口中漂浮框的代码
2010/03/15 Javascript
JavaScript中数组对象的那些自带方法介绍
2013/03/12 Javascript
JQuery页面图片切换和新闻列表滚动效果的具体实现
2013/09/26 Javascript
Javascript异步编程模型Promise模式详细介绍
2014/05/08 Javascript
JavaScript调试工具汇总
2014/12/23 Javascript
setinterval()与clearInterval()JS函数的调用方法
2015/01/21 Javascript
js计算德州扑克牌面值的方法
2015/03/04 Javascript
jQuery下拉美化搜索表单效果代码分享
2015/08/25 Javascript
javascript HTML+CSS实现经典橙色导航菜单
2016/02/16 Javascript
Angular+Bootstrap+Spring Boot实现分页功能实例代码
2017/07/21 Javascript
使用vue-cli打包过程中的步骤以及问题的解决
2018/05/08 Javascript
Vue 中使用 typescript的方法详解
2020/02/17 Javascript
JavaScript中的this基本问题实例小结
2020/03/09 Javascript
使用python调用浏览器并打开一个网址的例子
2014/06/05 Python
python中利用Future对象异步返回结果示例代码
2017/09/07 Python
新手常见6种的python报错及解决方法
2018/03/09 Python
Python实现查询某个目录下修改时间最新的文件示例
2018/08/29 Python
Python通过2种方法输出带颜色字体
2020/03/02 Python
企业治理工作自我评价
2013/09/26 职场文书
应届毕业生应聘自荐信范文
2014/02/26 职场文书
《蝙蝠和雷达》教学反思
2014/04/23 职场文书
公司离职证明标准范本
2014/10/05 职场文书
公安个人四风问题对照检查及整改措施
2014/10/28 职场文书
会计专业求职信范文
2015/03/19 职场文书
2015年保送生自荐信
2015/03/24 职场文书
中学生社会实践教育活动总结
2015/05/06 职场文书
个人原因辞职信模板
2015/05/13 职场文书
担保书格式范文
2015/09/22 职场文书
创业计划书之书店
2019/09/10 职场文书
Vue通过懒加载提升页面响应速度
2021/05/10 Vue.js
「约定的梦幻岛」作画发布诺曼生日新绘
2022/03/21 日漫