gpt4 book ai didi

DoctrineExtensions(Beberlei) 不起作用 - Doctrine 2

转载 作者:行者123 更新时间:2023-12-05 08:01:33 25 4
gpt4 key购买 nike

我安装了 Beberlei DoctrineExtensions但无法让 mysql DAY 和 YEAR 工作。

我的自动加载器中有这个:

$doctrineExtensions = new Doctrine\Common\ClassLoader('DoctrineExtensions', ROOT.DS.'library');
$doctrineExtensions->register();

当我尝试执行以下 dql 语句时

   SELECT YEAR(e.eventdate) FROM \Entities\Event e

我得到以下错误:错误:预期的已知函数,在/usr/local/lib/php/Doctrine/ORM/Query/QueryException.php:42 中得到“YEAR”

在我的文件顶部我有

use \DoctrineExtensions\Query\Mysql; 

我可以看到,如果我输入:

    $test = \DoctrineExtensions\Query\Mysql\Year::getSql();

但如果我打字就不行

    $test = Year::getSql();

似乎缺少一些实现,但无法找出问题所在..

最佳答案

请注意,其他答案中使用的 Doctrine\Common\ClassLoader 现已弃用。

正确的做法是这样的:

use DoctrineExtensions\Query\Mysql\Year;
...
$config = new \Doctrine\ORM\Configuration();
// Can also be:
// $config = \Doctrine\ORM\Tools\Setup::createConfiguration();
// Or:
// $config = \Doctrine\ORM\Tools\Setup::createAnnotationMetadataConfiguration([...]);
$config->addCustomDateTimeFunction('YEAR', Year::class);

您还可以使用 Doctrine\ORM\Configuration setCustomDateTimeFunctions([...]) 使用完全限定的类名从配置文件加载,如下所示:

doctrine:
orm:
dql:
datetime_functions:
year: DoctrineExtensions\Query\Mysql\Year
month: DoctrineExtensions\Query\Mysql\Month

关于DoctrineExtensions(Beberlei) 不起作用 - Doctrine 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13165637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com