问题标签 [laravel-doctrine]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 在我的系统中运行现有的 laravel 项目后出现学说包错误
我刚刚设置了一个 laravel 现有项目,但是当我运行 php artisan 命令或任何 migrate 命令时,每当我运行任何命令时出现错误,我得到了学说包错误。我不知道如何修复它并运行这个项目。我还添加了错误学说库错误快照的快照
使用 php 版本 7 和 mysql 版本 14.14 执行我到目前为止所做的工作
- 克隆我的 /var/www/html 文件夹中的现有项目
- 运行命令 composer update --no-scripts
- 检查供应商文件夹中的所有内容都在供应商中创建
- 现在,如果尝试运行任何命令,它会抛出我在上面附加的图像中的学说包错误
php - Laravel/Doctrine 随机尝试连接到生产数据库
我随机收到服务器错误,因为 Laravel 正在尝试连接到生产数据库,尽管事实上我已经.env
设置了一个文件并且大部分时间它连接到正确的数据库。
这是我收到的错误:
为什么教义会尝试连接到错误的数据库?有时会在 dotenv 之前被实例化吗?
php - 使用带有 Laravel-Doctrine 的工厂时调用未定义的方法 newCollection
我想使用Model factory,但出现此错误:
工厂代码是从Laravel-Doctrine 示例项目中复制而来的:
我错了什么?在使用工厂之前,我需要额外的配置吗?教义完美无缺,我只有问题factory()
测试类如下所示:
laravel - 学说2中的三级继承不加载二级数据
我使用类表继承继承了三个级别,如下所示:
班级考试
类 TestM 扩展了 Test
TestA 类扩展了 TestM
我遇到了问题,因为当我要从数据库中检索实体时,它带有没有数据的第二层,只有第一层和最后一层带有所有数据。请注意 columnTestM 是空白的。我错过了什么?它在所有三个级别的数据中都存在,问题只是当我必须得到它时。作为示例,我将列的内容与它自己的名称放在一起
编辑:
也许这是一个错误,我在 GitHub 上提交了一个关于错误查询生成的问题。我让 MariaDB 记录所有查询,以检查当我尝试检索数据时生成的查询,结果如下:
它尝试与 TestB 离开连接,而不是与 TestM 进行连接
doctrine-orm - 原则防止数据库中不存在记录的 OneToOne 关联错误
问题
我正在尝试使用 Doctrine 在 Laravel 应用程序中创建 OneToOne 关联。尝试访问关联时出现此错误。
Entity of type 'Status' for IDs clientId(1) was not found
版本:
教义:2.7.5
拉拉维尔:7.30.4
代码:
客户端类
状态等级:
调用代码
我试过的/我看过的答案
- 找不到 ID id(155) 的“AppBundle\Entity\User”类型的实体- 我没有使用 Doctrine 过滤器,也没有使用 DQL。
- https://stackoverflow.com/a/49416542/9530790 - 通过吞下异常,这可以通过一些调整来工作,但当文档说
nullable
应该工作时,感觉更像是一种黑客行为。 - https://stackoverflow.com/a/21887344/9530790 - 这个状态
nullable
应该有效,但它没有。 - https://stackoverflow.com/a/15744449/9530790 - 同样的问题不同的答案。声明 Doctrine 不支持零对一关联,但
nullable
我相信应该是解决这个问题的方法,但对于我的问题,它不起作用。此外,没有指向文档的链接,说明不支持从零到一的位置。 - 我相信添加
fetch="EAGER"
应该可以解决我们应用程序中其他地方有效的空问题,但是当我添加时,我得到一个不同的 Doctrine errorspl_object_hash() expects parameter 1 to be object, null given
,这又与不存在的关联有关。 - “好吧,为什么您在其他关联中没有遇到上述错误”。好问题!在深入了解 Doctrine 代码之后,我相信原因是因为这些关联是嵌套的,并且由于某种原因(我不确定为什么),当嵌套时,
spl_object_hash
类中的函数UnitOfWork
没有被调用。
补充说明:
这是对象在调用 时的样子
$client->getStatus()
,在下一次->getStatus()
调用出错之前。您可以看到它是一个
Client
Proxy 对象,它创建的不是“真正的”对象,这就是为什么它在不使用时出错(未找到 ID 为“状态”类型的实体 clientId(1))fetch="EAGER"
,因为急切加载了一个真正的对象。看这里Proxy 对象中的以下代码是导致上述错误的原因。这就是为什么我不能
try catch
在父级('true'Client
类)中执行 a 的原因,因为它在调用父级之前会出错。
问题:
为什么nullable=true
没有按预期工作,我应该/可以做些什么来使它工作?
php - Laravel 存在使用不同连接的 Laravel Doctrine 的功能验证
我正在尝试使用 Laravel 存在函数来验证 Laravel 8 中的教义实体。我在教义配置中有两个不同的管理器,一个是默认的,另一个是 magento。
我在 config/databse.php 中使用 magento 名称定义了数据库连接。
但是当我运行代码时,它总是选择默认连接而不是 magento 连接。