knp paginatorは0の結果を返しますが、クエリは5の結果を返します

ポールT。

knppaginatorでページ付けをしようとしています。

私は同じウェブサイトの他の場所でそれを使用しています、そして彼はうまく働きます。

しかし、今は他のクエリで使用しようとしていますが、問題があります。

    $query = $src->getQuery();
    //die(print_r($query->getDQL()));
    //die(print_r($query->getParameters()));
    $paginator = $this->get('knp_paginator');
    $paginator = $paginator->paginate(
        $query,
        $this->get('request')->query->get('page', 1),
        15
    );

$ srcは、クエリを作成するためのカスタムサービスです。ダイライン「getDQL」はこのDQLを返します:

SELECT p FROM YOUProductBundle:Product p INNER JOIN p.boutique b INNER JOIN p.material m INNER JOIN p.cat1 cat WHERE p.stock > 0 AND p.type = :type AND cat.id = :cat AND b.latitude >= :latN AND b.latitude <= :latP AND b.longitude >= :lonN AND b.longitude <= :lonP AND distance(b.latitude,b.longitude,48.583148,7.747882000000004) <= :rayon ORDER BY m.prix ASC

ダイライン「getParameters」はこのデータを返します:

Doctrine\Common\Collections\ArrayCollection Object
(
[_elements:Doctrine\Common\Collections\ArrayCollection:private] => Array
    (
        [0] => Doctrine\ORM\Query\Parameter Object
            (
                [name:Doctrine\ORM\Query\Parameter:private] => type
                [value:Doctrine\ORM\Query\Parameter:private] => material
                [type:Doctrine\ORM\Query\Parameter:private] => 2
            )

        [1] => Doctrine\ORM\Query\Parameter Object
            (
                [name:Doctrine\ORM\Query\Parameter:private] => cat
                [value:Doctrine\ORM\Query\Parameter:private] => 21
                [type:Doctrine\ORM\Query\Parameter:private] => integer
            )

        [2] => Doctrine\ORM\Query\Parameter Object
            (
                [name:Doctrine\ORM\Query\Parameter:private] => latP
                [value:Doctrine\ORM\Query\Parameter:private] => 49.257639204439
                [type:Doctrine\ORM\Query\Parameter:private] => 2
            )

        [3] => Doctrine\ORM\Query\Parameter Object
            (
                [name:Doctrine\ORM\Query\Parameter:private] => latN
                [value:Doctrine\ORM\Query\Parameter:private] => 47.908656795561
                [type:Doctrine\ORM\Query\Parameter:private] => 2
            )

        [4] => Doctrine\ORM\Query\Parameter Object
            (
                [name:Doctrine\ORM\Query\Parameter:private] => lonP
                [value:Doctrine\ORM\Query\Parameter:private] => 8.7674709750602
                [type:Doctrine\ORM\Query\Parameter:private] => 2
            )

        [5] => Doctrine\ORM\Query\Parameter Object
            (
                [name:Doctrine\ORM\Query\Parameter:private] => lonN
                [value:Doctrine\ORM\Query\Parameter:private] => 6.7282930249398
                [type:Doctrine\ORM\Query\Parameter:private] => 2
            )

        [6] => Doctrine\ORM\Query\Parameter Object
            (
                [name:Doctrine\ORM\Query\Parameter:private] => rayon
                [value:Doctrine\ORM\Query\Parameter:private] => 75
                [type:Doctrine\ORM\Query\Parameter:private] => 2
            )

    )

)

エラーはありませんが、このクエリの結果は0です。ここで、「$ query-> getArrayResult()」を実行しようとすると、5つの結果が得られます。

なぜページネーターは5つの通常の結果を得られないのですか?

ポールT。

パラメータの順序が良くありません...パラメータを設定するとき、順序が正しくありません。以下を参照してください。

            ->andWhere('b.latitude >= :latN')
            ->andWhere('b.latitude <= :latP')
            ->andWhere('b.longitude >= :lonN')
            ->andWhere('b.longitude <= :lonP')
            ->andWhere('distance(b.latitude,b.longitude,'.$datas['lat'].','.$datas['lon'].') <= :rayon')
            ->setParameter('latP',$latP)
            ->setParameter('latN',$latN)
            ->setParameter('lonP',$lonP)
            ->setParameter('lonN',$lonN)
            ->setParameter('rayon',$datas['search']);

「latP」を「latN」と逆にし、「lonP」を「lonN」と逆にします。

クエリビルダーを使用する場合は問題ありません...しかし、Paginatorのクエリをエクスポートすると、最終的なクエリとパラメーター配列の順序が正しくなく、正しいクエリを実行できません...。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

JMS Serializer ignores mappings for Knp Paginator

分類Dev

用語クエリは0の結果を返しますelasticsearch

分類Dev

SQLクエリの結果がない場合は0を返します

分類Dev

私のクエリは、1を返す必要があるときに0の結果を返します

分類Dev

MySQLクエリは追加の結果を返します

分類Dev

クエリwinstonログは空の結果を返します

分類Dev

phpmysql更新クエリは空の結果を返します

分類Dev

SequelizeクエリはPromiseを返します。クエリが結果を返すのを待つ方法は?

分類Dev

Elasticseachが存在するオブジェクトタイプのクエリは0の結果を返します

分類Dev

.NET ODACクエリは結果を返しませんが、SQLDEVELOPERは結果を返します

分類Dev

knp paginatorを使用するエンティティの複合主キーでは、単一のIDは許可されません

分類Dev

SQL宣言クエリは1行の結果のみを返します

分類Dev

CloudKitクエリ操作は300件の結果のみを返します

分類Dev

mysqlのselectクエリは常に空の結果を返します

分類Dev

PostGISクエリは常にすべての結果を返します

分類Dev

クエリは空の結果を返しますが、データは存在します

分類Dev

Elastic Search集計クエリは1970年以降の結果を返しますか?

分類Dev

NodeJS / MySQLは、クエリの結果を変数に返します

分類Dev

Codeigniterはmysqlクエリ結果を単一の配列に返します

分類Dev

LuceneAPIクエリは常に最初の辞書結果を返します

分類Dev

クエリが結果を返さない(ただし、結果は存在し、クエリは別のプロジェクトで機能します)

分類Dev

テーブルに値をMoodleしませんが、クエリ結果の数は1を返します

分類Dev

SpringBootのJPAクエリは結果を返しません

分類Dev

DBpediaSorqlのSPARQLクエリは結果を返しません

分類Dev

XML Deserializeは0の結果をc#で返します

分類Dev

SQLは0行の結果を返します

分類Dev

結果は最終結果で未定義を返しますが、axiosリクエストで結果を返します

分類Dev

結合を使用したmysqlクエリは結果を繰り返します

分類Dev

MongoDBの結果をHTTPリクエストに返します

Related 関連記事

  1. 1

    JMS Serializer ignores mappings for Knp Paginator

  2. 2

    用語クエリは0の結果を返しますelasticsearch

  3. 3

    SQLクエリの結果がない場合は0を返します

  4. 4

    私のクエリは、1を返す必要があるときに0の結果を返します

  5. 5

    MySQLクエリは追加の結果を返します

  6. 6

    クエリwinstonログは空の結果を返します

  7. 7

    phpmysql更新クエリは空の結果を返します

  8. 8

    SequelizeクエリはPromiseを返します。クエリが結果を返すのを待つ方法は?

  9. 9

    Elasticseachが存在するオブジェクトタイプのクエリは0の結果を返します

  10. 10

    .NET ODACクエリは結果を返しませんが、SQLDEVELOPERは結果を返します

  11. 11

    knp paginatorを使用するエンティティの複合主キーでは、単一のIDは許可されません

  12. 12

    SQL宣言クエリは1行の結果のみを返します

  13. 13

    CloudKitクエリ操作は300件の結果のみを返します

  14. 14

    mysqlのselectクエリは常に空の結果を返します

  15. 15

    PostGISクエリは常にすべての結果を返します

  16. 16

    クエリは空の結果を返しますが、データは存在します

  17. 17

    Elastic Search集計クエリは1970年以降の結果を返しますか?

  18. 18

    NodeJS / MySQLは、クエリの結果を変数に返します

  19. 19

    Codeigniterはmysqlクエリ結果を単一の配列に返します

  20. 20

    LuceneAPIクエリは常に最初の辞書結果を返します

  21. 21

    クエリが結果を返さない(ただし、結果は存在し、クエリは別のプロジェクトで機能します)

  22. 22

    テーブルに値をMoodleしませんが、クエリ結果の数は1を返します

  23. 23

    SpringBootのJPAクエリは結果を返しません

  24. 24

    DBpediaSorqlのSPARQLクエリは結果を返しません

  25. 25

    XML Deserializeは0の結果をc#で返します

  26. 26

    SQLは0行の結果を返します

  27. 27

    結果は最終結果で未定義を返しますが、axiosリクエストで結果を返します

  28. 28

    結合を使用したmysqlクエリは結果を繰り返します

  29. 29

    MongoDBの結果をHTTPリクエストに返します

ホットタグ

アーカイブ