DoctrineExtensions 查找错误的目录
DoctrineExtensions looking in wrong directory
我在我的 PHP 项目中使用 Doctrine ORM。
在我的一个查询中,我使用了 'COS'(余弦)和 'SIN'(正弦)函数,为了在 Doctrine 上实现这一点,我必须将其添加到我的实体管理器中配置:
$config->addCustomNumericFunction('COS', 'DoctrineExtensions\Query\Mysql\cos');
$config->addCustomNumericFunction('SIN', 'DoctrineExtensions\Query\Mysql\sin');
当我 运行 在我的本地 PC + 服务器上时,这工作正常。
但是一旦我将项目放到在线网络服务器上,我就会遇到这些错误:
Fatal error: Class 'DoctrineExtensions\Query\Mysql\cos' not found in /home/USER/domains/USER.com/public_html/MYDIRECTORY/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php on line 3418
Fatal error: Class 'DoctrineExtensions\Query\Mysql\sin' not found in /home/USER/domains/USER.com/public_html/MYDIRECTORY/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php on line 3418
它在 'vendor\doctrine' 目录而不是 'vendor\beberlei\DoctrineExtensions' 目录中查找。
我的作曲家包含:
"beberlei/DoctrineExtensions": "dev-master"
供应商自动加载器包含:
'DoctrineExtensions\' => array($vendorDir . '/beberlei/DoctrineExtensions/src')
任何人都可以向我解释一下吗...我尝试添加一个类加载器,但仍然是同样的问题。
本地主机工作正常...
在我使用的 entitymanager 配置中添加正弦和余弦函数时:
$config->addCustomNumericFunction('COS', 'DoctrineExtensions\Query\Mysql\cos');
$config->addCustomNumericFunction('SIN', 'DoctrineExtensions\Query\Mysql\sin');
上述解决方案适用于本地 PC + 服务器。
将项目文件移动到网络服务器时,上述配置将不起作用。
你必须把DoctrineExtensions namespace
中最后一个单词的首字母改成大写,像这样:
$config->addCustomNumericFunction('COS', 'DoctrineExtensions\Query\Mysql\Cos');
$config->addCustomNumericFunction('SIN', 'DoctrineExtensions\Query\Mysql\Sin');
基本上 cos 变成 Cos 而 sin 变成 Sin.
现在它可以在在线网络服务器上运行。终于成功了!
我在我的 PHP 项目中使用 Doctrine ORM。
在我的一个查询中,我使用了 'COS'(余弦)和 'SIN'(正弦)函数,为了在 Doctrine 上实现这一点,我必须将其添加到我的实体管理器中配置:
$config->addCustomNumericFunction('COS', 'DoctrineExtensions\Query\Mysql\cos');
$config->addCustomNumericFunction('SIN', 'DoctrineExtensions\Query\Mysql\sin');
当我 运行 在我的本地 PC + 服务器上时,这工作正常。
但是一旦我将项目放到在线网络服务器上,我就会遇到这些错误:
Fatal error: Class 'DoctrineExtensions\Query\Mysql\cos' not found in /home/USER/domains/USER.com/public_html/MYDIRECTORY/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php on line 3418
Fatal error: Class 'DoctrineExtensions\Query\Mysql\sin' not found in /home/USER/domains/USER.com/public_html/MYDIRECTORY/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php on line 3418
它在 'vendor\doctrine' 目录而不是 'vendor\beberlei\DoctrineExtensions' 目录中查找。
我的作曲家包含:
"beberlei/DoctrineExtensions": "dev-master"
供应商自动加载器包含:
'DoctrineExtensions\' => array($vendorDir . '/beberlei/DoctrineExtensions/src')
任何人都可以向我解释一下吗...我尝试添加一个类加载器,但仍然是同样的问题。
本地主机工作正常...
在我使用的 entitymanager 配置中添加正弦和余弦函数时:
$config->addCustomNumericFunction('COS', 'DoctrineExtensions\Query\Mysql\cos');
$config->addCustomNumericFunction('SIN', 'DoctrineExtensions\Query\Mysql\sin');
上述解决方案适用于本地 PC + 服务器。
将项目文件移动到网络服务器时,上述配置将不起作用。
你必须把DoctrineExtensions namespace
中最后一个单词的首字母改成大写,像这样:
$config->addCustomNumericFunction('COS', 'DoctrineExtensions\Query\Mysql\Cos');
$config->addCustomNumericFunction('SIN', 'DoctrineExtensions\Query\Mysql\Sin');
基本上 cos 变成 Cos 而 sin 变成 Sin.
现在它可以在在线网络服务器上运行。终于成功了!