我在我的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')
任何人都可以向我解释这个...我尝试添加一个类加载器,但仍然是同样的问题。
Localhost工作正常......
答案 0 :(得分:0)
在我使用的实体管理器配置中添加正弦和余弦函数时:
Sub Espelho_OM()
Dim Linha As Integer
Dim Data_Vencimento As String
Dim N1 As String
Dim N2 As String
Dim N3 As String
Dim N4 As String
Dim N5 As String
Dim N6 As String
Dim N7 As String
Dim N8 As Double
Dim i As Integer
Sheets(2).Cells.Clear
Sheets(1).Select
Cells(100000, 1).End(xlUp).Select
Linha = ActiveCell.Row - 1
For i = 1 To Linha
N1 = Sheets(1).Cells(i + 1, 1)
N2 = Sheets(1).Cells(i + 1, 2)
N3 = Sheets(1).Cells(i + 1, 3)
N4 = Sheets(1).Cells(i + 1, 4)
N5 = Sheets(1).Cells(i + 1, 5)
N6 = Sheets(1).Cells(i + 1, 6)
N7 = Sheets(1).Cells(i + 1, 7)
N8 = Sheets(1).Cells(i + 1, 8)
Sheets(2).Cells(1 + (i - 1) * 38, 1) = N1
Sheets(2).Cells(2 + (i - 1) * 38, 1) = N2
Sheets(2).Cells(4 + (i - 1) * 38, 1) = N3
Sheets(2).Cells(5 + (i - 1) * 38, 1) = N4
Sheets(2).Cells(6 + (i - 1) * 38, 1) = N5
Sheets(2).Cells(7 + (i - 1) * 38, 1) = N6
Sheets(2).Cells(8 + (i - 1) * 38, 1) = N7
Sheets(2).Cells(10 + (i - 1) * 38, 1) = N8
Next
Sheets(2).Select
End Sub
上述解决方案适用于本地PC +服务器。
将项目文件移动到网络服务器时,上述配置无法正常工作。
您必须将$config->addCustomNumericFunction('COS', 'DoctrineExtensions\Query\Mysql\cos');
$config->addCustomNumericFunction('SIN', 'DoctrineExtensions\Query\Mysql\sin');
中最后一个单词的第一个字母更改为大写,如下所示:
DoctrineExtensions namespace
基本上 cos 变为 Cos 而罪变为罪。
现在它适用于在线网络服务器。终于搞定了!