【问题标题】:DoctrineExtensions looking in wrong directoryDoctrineExtensions 在错误的目录中查找
【发布时间】:2015-08-27 23:08:26
【问题描述】:

我在我的 PHP 项目中使用 Doctrine ORM。

在我的一个查询中,我使用了“COS”(余弦)和“SIN”(正弦)函数,为了在 Doctrine 上实现这一点,我必须将其添加到我的 entitymanager 配置中:

$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')

谁能给我解释一下...我尝试添加一个类加载器,但仍然是同样的问题。

本地主机工作正常...

【问题讨论】:

    标签: php doctrine-orm doctrine-extensions


    【解决方案1】:

    在我使用的 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 变成 Cossin 变成 Sin

    现在它可以在在线网络服务器上运行。终于搞定了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-19
      • 2012-06-27
      • 1970-01-01
      • 1970-01-01
      • 2015-08-25
      • 2018-09-08
      • 1970-01-01
      相关资源
      最近更新 更多