【发布时间】:2020-08-18 14:27:29
【问题描述】:
大家好,我正在使用 Doctrice ORM 开发 Symfony 堆栈,我在加载我的应用程序装置时遇到了问题。
该应用分为3个模型User、Post、Comments
具有 3 个功能 public function loadUser(ObjectManager $manager) / public function loadPost(ObjectManager $manager) / public functionloadComments(ObjectManager $manager)
其中两个有一个外键表,在 cmets 部分加载固定装置我在参考帖子上得到一个错误:
$comments->setPost($this->getReference(
self::POSTS[rand(0, count(self::POSTS) - 1 )]['name']));
错误输出是Reference to "Vacation" does not exist,但是当我使用相同的方法加载我的帖子时,我没有在引用上看到该错误,鳕鱼看起来像这样:
$post->setUser($this->getReference(
self::USERS[rand(0, count(self::USERS) - 1)]['last_name']));
【问题讨论】:
-
我不知道你的
$this->getReference()长什么样子,但我已经发现它非常奇怪,它接收到帖子的 name 而不仅仅是帖子对象(类似于用户)。也许这已经是原因……想详细说明一下吗? ^^ -
好吧,我只是简单地发布了它的样子,我写下了我想要加载的值,post 是我的 Appfixtures 上的一个 const 数组,名称是在 ['name' = > '帖子名称']。
-
发布整个灯具类。您是否以正确的顺序加载夹具? symfony.com/doc/master/bundles/DoctrineFixturesBundle/…
-
@blahy 是的,我先加载用户,然后是帖子,然后是 cmets ` public function load(ObjectManager $manager) { $this->loadUsers($manager); $this->loadTheme($manager); $this->loadSousThemes($manager); }`
-
那么也许你只是没有
addReference到Vacation对象?
标签: php symfony orm doctrine-orm doctrine