MySQL — как зарегистрировать / использовать / настроить beberlei / DoctrineExtensions в пользовательском проекте PHP?

У меня есть собственный мини php MVC, и нужно добавить beberlei/DoctrineExtensions, Я не могу понять, как добавить / настроить и использовать beberlei/DoctrineExtensions, В настоящее время у меня есть эта конфигурация:

require_once INC_ROOT . '/vendor/doctrine/common/lib/Doctrine/Common/ClassLoader.php';
use Doctrine\Common\ClassLoader;
$classLoader = new \Doctrine\Common\ClassLoader('Doctrine');
$classLoader->register();

$classLoader2 = new \Doctrine\Common\ClassLoader('DoctrineExtensions', '/vendor/beberlei/DoctrineExtensions');
$classLoader2->register();

Я хочу выбрать приложения, похожие на 20aliasApp871начиная с любой цифры, за которой следует aliasApp строка, а затем число выше 870 (но не более 1500).

    $appIds = $qb->select( 'a.id' )
->from( 'BookBundle\Entity\App', 'a' )
->where ( ' REGEXP(a.aliasApp, .*aliasApp[189]{1}[0123456789]{2,3}) = true ')
->getQuery()
->getResult();

Я получаю фатальную ошибку:

    Fatal error: `Uncaught Doctrine\ORM\Query\QueryException:
SELECT a.id FROM BookBundle\Entity\App a WHERE REGEXP(a.aliasApp, .*aliasApp[189]{1}[0123456789]{2,3}) = true`
in vendor\doctrine\orm\lib\Doctrine\ORM\Query\QueryException.php:41 Stack trace:
#0 \vendor\doctrine\orm\lib\Doctrine\ORM\Query\Parser.php(448): Doctrine\ORM\Query\QueryException::dqlError('SELECT a.id FRO...')
#1 vendor\doctrine\orm\lib\Doctrine\ORM\Query\Parser.php(3379): Doctrine\ORM\Query\Parser->syntaxError('known function', Array)
#2 vendor\doctrine\orm\lib\Doctrine\ORM\Query\Parser.php(3351): Doctrine\ORM\Query\Parser->CustomFunctionDeclaration()
#3 vendor\doctrine\orm\lib\Doctrine\ORM\Query\Parser.php(2810): Doctrine\ORM\Query\Parser->FunctionDeclaration()
#4 vendor\doctrine\orm\lib\Doctrine\ORM\Query\QueryException.php on line 52

0

Решение

  • Не используйте обратную косую черту в имени таблицы.

  • REGEXP это оператор, а не функция: WHERE a.aliasApp REGEXP '.*aliasApp[189]{1}[0123456789]{2,3}'

  • Пожаловаться на Doctrine за то, что оно не предоставило столь же полезного сообщения об ошибке, как MySQL.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector