vendor/doctrine/orm/lib/Doctrine/ORM/Query/QueryException.php line 12

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Doctrine\ORM\Query;
  4. use Doctrine\ORM\Exception\ORMException;
  5. use Doctrine\ORM\Query\AST\PathExpression;
  6. use Exception;
  7. use Stringable;
  8. class QueryException extends ORMException
  9. {
  10.     /**
  11.      * @param string $dql
  12.      *
  13.      * @return QueryException
  14.      */
  15.     public static function dqlError($dql)
  16.     {
  17.         return new self($dql);
  18.     }
  19.     /**
  20.      * @param string         $message
  21.      * @param Exception|null $previous
  22.      *
  23.      * @return QueryException
  24.      */
  25.     public static function syntaxError($message$previous null)
  26.     {
  27.         return new self('[Syntax Error] ' $message0$previous);
  28.     }
  29.     /**
  30.      * @param string         $message
  31.      * @param Exception|null $previous
  32.      *
  33.      * @return QueryException
  34.      */
  35.     public static function semanticalError($message$previous null)
  36.     {
  37.         return new self('[Semantical Error] ' $message0$previous);
  38.     }
  39.     /** @return QueryException */
  40.     public static function invalidLockMode()
  41.     {
  42.         return new self('Invalid lock mode hint provided.');
  43.     }
  44.     /**
  45.      * @param string $expected
  46.      * @param string $received
  47.      *
  48.      * @return QueryException
  49.      */
  50.     public static function invalidParameterType($expected$received)
  51.     {
  52.         return new self('Invalid parameter type, ' $received ' given, but ' $expected ' expected.');
  53.     }
  54.     /**
  55.      * @param string $pos
  56.      *
  57.      * @return QueryException
  58.      */
  59.     public static function invalidParameterPosition($pos)
  60.     {
  61.         return new self('Invalid parameter position: ' $pos);
  62.     }
  63.     /**
  64.      * @param int $expected
  65.      * @param int $received
  66.      *
  67.      * @return QueryException
  68.      */
  69.     public static function tooManyParameters($expected$received)
  70.     {
  71.         return new self('Too many parameters: the query defines ' $expected ' parameters and you bound ' $received);
  72.     }
  73.     /**
  74.      * @param int $expected
  75.      * @param int $received
  76.      *
  77.      * @return QueryException
  78.      */
  79.     public static function tooFewParameters($expected$received)
  80.     {
  81.         return new self('Too few parameters: the query defines ' $expected ' parameters but you only bound ' $received);
  82.     }
  83.     /**
  84.      * @param string $value
  85.      *
  86.      * @return QueryException
  87.      */
  88.     public static function invalidParameterFormat($value)
  89.     {
  90.         return new self('Invalid parameter format, ' $value ' given, but :<name> or ?<num> expected.');
  91.     }
  92.     /**
  93.      * @param string $key
  94.      *
  95.      * @return QueryException
  96.      */
  97.     public static function unknownParameter($key)
  98.     {
  99.         return new self('Invalid parameter: token ' $key ' is not defined in the query.');
  100.     }
  101.     /** @return QueryException */
  102.     public static function parameterTypeMismatch()
  103.     {
  104.         return new self('DQL Query parameter and type numbers mismatch, but have to be exactly equal.');
  105.     }
  106.     /**
  107.      * @param PathExpression $pathExpr
  108.      *
  109.      * @return QueryException
  110.      */
  111.     public static function invalidPathExpression($pathExpr)
  112.     {
  113.         return new self(
  114.             "Invalid PathExpression '" $pathExpr->identificationVariable '.' $pathExpr->field "'."
  115.         );
  116.     }
  117.     /**
  118.      * @param string|Stringable $literal
  119.      *
  120.      * @return QueryException
  121.      */
  122.     public static function invalidLiteral($literal)
  123.     {
  124.         return new self("Invalid literal '" $literal "'");
  125.     }
  126.     /**
  127.      * @param string[] $assoc
  128.      * @psalm-param array<string, string> $assoc
  129.      *
  130.      * @return QueryException
  131.      */
  132.     public static function iterateWithFetchJoinCollectionNotAllowed($assoc)
  133.     {
  134.         return new self(
  135.             'Invalid query operation: Not allowed to iterate over fetch join collections ' .
  136.             'in class ' $assoc['sourceEntity'] . ' association ' $assoc['fieldName']
  137.         );
  138.     }
  139.     /** @return QueryException */
  140.     public static function partialObjectsAreDangerous()
  141.     {
  142.         return new self(
  143.             'Loading partial objects is dangerous. Fetch full objects or consider ' .
  144.             'using a different fetch mode. If you really want partial objects, ' .
  145.             'set the doctrine.forcePartialLoad query hint to TRUE.'
  146.         );
  147.     }
  148.     /**
  149.      * @param string[] $assoc
  150.      * @psalm-param array<string, string> $assoc
  151.      *
  152.      * @return QueryException
  153.      */
  154.     public static function overwritingJoinConditionsNotYetSupported($assoc)
  155.     {
  156.         return new self(
  157.             'Unsupported query operation: It is not yet possible to overwrite the join ' .
  158.             'conditions in class ' $assoc['sourceEntityName'] . ' association ' $assoc['fieldName'] . '. ' .
  159.             'Use WITH to append additional join conditions to the association.'
  160.         );
  161.     }
  162.     /** @return QueryException */
  163.     public static function associationPathInverseSideNotSupported(PathExpression $pathExpr)
  164.     {
  165.         return new self(
  166.             'A single-valued association path expression to an inverse side is not supported in DQL queries. ' .
  167.             'Instead of "' $pathExpr->identificationVariable '.' $pathExpr->field '" use an explicit join.'
  168.         );
  169.     }
  170.     /**
  171.      * @param string[] $assoc
  172.      * @psalm-param array<string, string> $assoc
  173.      *
  174.      * @return QueryException
  175.      */
  176.     public static function iterateWithFetchJoinNotAllowed($assoc)
  177.     {
  178.         return new self(
  179.             'Iterate with fetch join in class ' $assoc['sourceEntity'] .
  180.             ' using association ' $assoc['fieldName'] . ' not allowed.'
  181.         );
  182.     }
  183.     public static function iterateWithMixedResultNotAllowed(): QueryException
  184.     {
  185.         return new self('Iterating a query with mixed results (using scalars) is not supported.');
  186.     }
  187.     /** @return QueryException */
  188.     public static function associationPathCompositeKeyNotSupported()
  189.     {
  190.         return new self(
  191.             'A single-valued association path expression to an entity with a composite primary ' .
  192.             'key is not supported. Explicitly name the components of the composite primary key ' .
  193.             'in the query.'
  194.         );
  195.     }
  196.     /**
  197.      * @param string $className
  198.      * @param string $rootClass
  199.      *
  200.      * @return QueryException
  201.      */
  202.     public static function instanceOfUnrelatedClass($className$rootClass)
  203.     {
  204.         return new self("Cannot check if a child of '" $rootClass "' is instanceof '" $className "', " .
  205.             'inheritance hierarchy does not exists between these two classes.');
  206.     }
  207.     /**
  208.      * @param string $dqlAlias
  209.      *
  210.      * @return QueryException
  211.      */
  212.     public static function invalidQueryComponent($dqlAlias)
  213.     {
  214.         return new self(
  215.             "Invalid query component given for DQL alias '" $dqlAlias "', " .
  216.             "requires 'metadata', 'parent', 'relation', 'map', 'nestingLevel' and 'token' keys."
  217.         );
  218.     }
  219. }