您好,欢迎访问一九零五行业门户网

总结Symfony中查询的方法介绍

这篇文章主要介绍了symfony查询方法,结合实例形式总结分析了createquery与getquery查询数据的具体使用技巧,需要的朋友可以参考下
本文实例讲述了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();
以上就是总结symfony中查询的方法介绍的详细内容。
其它类似信息

推荐信息