【问题标题】:Doctine(Symfony) Load Fixtures, reference doesnt existDoctrine(Symfony) 加载夹具,参考不存在
【发布时间】:2020-08-18 14:27:29
【问题描述】:

大家好,我正在使用 Doctrice ORM 开发 Symfony 堆栈,我在加载我的应用程序装置时遇到了问题。 该应用分为3个模型UserPostComments

具有 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); }`
  • 那么也许你只是没有addReferenceVacation 对象?

标签: php symfony orm doctrine-orm doctrine


【解决方案1】:

这里回答了问题,提供了有关源代码和错误产生位置的更多详细信息:

Doctrine fixtures load, having issue setting references (foreign key) violates -not-null constraint

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 2018-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多