ホームページ > バックエンド開発 > PHPチュートリアル > Symfony のクエリメソッドの概要

Symfony のクエリメソッドの概要

零下一度
リリース: 2023-03-12 12:04:02
オリジナル
1692 人が閲覧しました

この記事では主に Symfonyquery メソッドを紹介し、データをクエリするための createQuery と getQuery の具体的な使用スキルをサンプルの形式でまとめて分析します。必要な友人はそれを参照してください。この記事の例では Symfony について説明します。クエリメソッド。参考までに皆さんにシェアしてください。詳細は以下の通りです:

1. createQueryの書き方

1

2

3

4

5

6

7

8

9

10

11

12

13

$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インジェクションを防ぐためのプレースホルダーを意味します。したがって、必要なパラメータをすべて

array

$params に入力します。 2.getQueryの書き方

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

$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 のクエリメソッドの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート