如何在 Fixtures.yml 文件中声明 Doctrines 继承?
我在 Symfony 的 fixtures.yml
文件中继承 Doctrine 时遇到问题。
想象一下:
NewsAuthor: inheritance: extends: sfGuardUser type: simple
现在我想声明User_admin “nofollow">sfDoctrineGuardPlugin 成为我的新闻模型第一篇虚拟文章的作者。但如何做到这一点呢?
我尝试了以下操作:
NewsAuthor: AuthorAdmin: sfGuardUser: User_admin
但后来我收到了 doctrine:data-load
任务的错误:
Unknown record property / related component "sfguarduser" on "NewsAuthor"
我使用 Symfony 1.4.8 和 Doctrine 1.2.3。
谢谢您的期待,
莱米
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你误解了 Doctrine 的继承是如何运作的。在简单继承下,
NewsAuthor
不会引用sfGuardUser
,它将拥有sfGuardUser
拥有的所有列和关系以及这些列和关系你定义。继承在这里是一个不好的方法。相反,您希望 NewsAuthor 具有对 sfGuardUser 的引用。在这种情况下,您的架构将如下所示:
您的装置将像以前一样:
然后您可以通过
$newsAuthor 访问
,类似地,您可以通过NewsAuthor
对象上的sfGuardUser
对象->User$user->NewsAuthor
访问sfGuardUser
实例上的NewsAuthor
。You're misunderstanding how Doctrine's inheritance works. Under simple inheritance,
NewsAuthor
wouldn't have a reference tosfGuardUser
, it would have all of the columns and relations thatsfGuardUser
has plus the ones you define. Inheritance is a bad approach here.Instead, you want a NewsAuthor to have a reference to sfGuardUser. Your schema in this case would look like:
Your fixtures would then look as they did before:
You could then access the
sfGuardUser
object on aNewsAuthor
object via$newsAuthor->User
, similarly, you can accessNewsAuthor
on ansfGuardUser
instance via$user->NewsAuthor
.