在CakePHP中定义模型类的层次结构

在CakePHP中定义模型类的层次结构,cakephp,inheritance,model,class-hierarchy,Cakephp,Inheritance,Model,Class Hierarchy,默认情况下,CakePHP有一个AppModel类,应用程序的每个模型都继承自该类。在模型之间共享逻辑的常见设计模式是创建一个行为,并将模型配置为该行为 但是如果我想引入这样的模型类层次结构呢 AppModel |__ Vehicle |__ Car |__ Bike |__ Helicopter 我试图创建一个继承自AppModel的Vehicle类,然后每个子类都继承自Vehicle。但是CakePHP告诉我它找不到类车辆 我该如何创建它

默认情况下,CakePHP有一个
AppModel
类,应用程序的每个模型都继承自该类。在模型之间共享逻辑的常见设计模式是创建一个行为,并将模型配置为该行为

但是如果我想引入这样的模型类层次结构呢

AppModel
  |__ Vehicle
        |__ Car
        |__ Bike
        |__ Helicopter
我试图创建一个继承自
AppModel
Vehicle
类,然后每个子类都继承自
Vehicle
。但是CakePHP告诉我它找不到类
车辆

我该如何创建它?我应该在CakePHP目录树中的何处创建
Vehicle


谢谢

这样做应该没有问题 在声明“父模型”之前,您只需要确保您的app::import()是“父模型”。 或者你做了什么,以至于找不到模型

如果我做那样的事,我会用lib作为我的“载体” 它不必是模型目录中的模型

e、 g.应用程序::导入('Lib','Vehicle')

车辆模型


汽车延伸了汽车

我喜欢这个主意,所以我搜索了一下。有一种方法可以实现这一点,但我还没有尝试过。。。另一种方法是搞乱负责加载的class_注册表文件或app类。。。但我不建议itI也遇到这种行为,但它似乎试图在应用程序级别模拟类继承的本机行为。我认为这是过分的正确,我相信;如果不使用import()手动告诉cake,cake将不会自动知道在何处查找Vehicle类。