作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
编辑:原始标题“文本环境:”平台“sqlite”不支持函数“year””
将 beberlei\DoctrineExtensions 合并到测试环境中会产生
Uncaught PHP Exception Doctrine\ORM\Query\QueryException: "[Syntax Error] Function "year" does not supported for platform "sqlite""...
composer show -i
包括
beberlei/DoctrineExtensions v1.0.5
扩展已安装:它们位于“...vendor\beberlei\DoctrineExtensions”。
month()
函数不会抛出错误。
doctrine:
dbal:
default_connection: test
connections:
test:
driver: pdo_sqlite
path: %kernel.cache_dir%/test.sqlite
orm:
dql:
string_functions:
Soundex: Truckee\VolunteerBundle\DQL\Soundex
month: DoctrineExtensions\Query\Sqlite\Month
datetime_functions:
year: DoctrineExtensions\Query\Sqlite\Year
dql:
string_functions:
Soundex: Truckee\VolunteerBundle\DQL\Soundex
numeric_functions:
month: Oro\ORM\Query\AST\Functions\SimpleFunction
year: Oro\ORM\Query\AST\Functions\SimpleFunction
public function expiringOppsNotSent()
{
$nextMonth = date_add(new \DateTime(), new \DateInterval('P1M'));
$expiryMonth = date_format($nextMonth, 'm');
$expiryYear = date_format($nextMonth, 'Y');
$qb = $this->getEntityManager()->createQueryBuilder();
$qb->select('o')
->from('TruckeeVolunteerBundle:Opportunity', 'o')
->leftJoin('TruckeeVolunteerBundle:AdminOutbox', 'a', 'WITH', $qb->expr()->eq('a.oppId', 'o'))
->andWhere($qb->expr()->eq('month(o.expireDate)', ':month'))
->andWhere($qb->expr()->eq('year(o.expireDate)', ':year'))
->andWhere('a.id is NULL')
->setParameter(':month', $expiryMonth)
->setParameter(':year', $expiryYear)
;
$notSent = $qb->getQuery()->getResult();
return $notSent;
}
如果将config.yml中的dql(如上所示)注释掉,则不会出现该错误!
创建 app_dev.php
后,功能测试中仍然存在错误。功能测试使用 Liip\FunctionalTestBundle\Test\WebTestCase
最佳答案
Sqlite 插件的正确命名空间是:
DoctrineExtensions\Query\Sqlite\Year
更新您的 config.yml
以包含:
doctrine:
orm:
dql:
datetime_functions:
year: DoctrineExtensions\Query\Sqlite\Year
关于php - config.yml 中的 DQL 未在 config_test.yml 中覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31922783/
编辑:原始标题“文本环境:”平台“sqlite”不支持函数“year”” 将 beberlei\DoctrineExtensions 合并到测试环境中会产生 Uncaught PHP Exceptio
我是一名优秀的程序员,十分优秀!