当前位置:  开发笔记 > 编程语言 > 正文

为什么我不能创建一个名为'Album'的Doctrine模型

如何解决《为什么我不能创建一个名为'Album'的Doctrine模型》经验,为你挑选了1个好方法。

我在我的项目中使用Doctrine作为ORM但遇到了一个奇怪的错误:

使用以下YAML:

Album:
  tableName: dpp_album
  actAs: [Timestampable]
  columns:
    name: string(255)
    description: string(255)
    online: boolean

我然后生成我的模型,但刷新我的页面并自动加载模型后,PHP提供此错误:

致命错误:第13行的E:\ sites\dpp\system\application\models\Album.php中找不到"BaseAlbum"类

奇怪的是,我的所有其他模型都很好,在这些情况下可以找到基类.

将名称"相册"更改为"设置"时,它就可以了!这不奇怪吗?!

所以看起来使用'专辑'有点冲突,虽然错误信息暗示了别的东西.更改为复数相册也不起作用,其他任何东西都没问题!

有什么建议?

谢谢!



1> Sander Versl..:

问题在于模型类的自动加载顺序.

生成的"基础"模型位于"models/generated"目录下,其他位于上面目录中.

加载顺序无法保证,因此有时模型会在其扩展的Base模型之前加载,从而抛出此错误.

在我的bootstrap文件中,我现在明确地包含了目录的加载顺序,如下所示:

Doctrine::loadModels(array(APPPATH.'/models/generated', APPPATH.'/models'));

该文档使用了大量示例生成了生成的文件,但在讨论引导配置时没有提到这种行为.

无论如何,这很快就解决了!:-)

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有