我有一个名为Stage1Application
的模型和一个名为Stage1ApplicationsController
的相应控制器。
当我使用
时在控制器中$this->Stage1Application->create();
我得到"在非对象上称为创建"错误。这是因为我的模型/控制器名称中有数字吗?
我也有一行
public $uses = array('Package','PersonalDetail','MarriageDetail','ChildrenDetail');
在我的控制器的开头 - 这是否阻止它包含自己的模型?
如果这是问题,那么如何附加$uses
数组 - 以便默认包含当前控制器的模型?
答案 0 :(得分:2)
我不知道模型名称有任何限制,除非它们必须是有效的类名。从PHP手册:有效的类名以字母或下划线开头,后跟任意数量的字母,数字或下划线。 http://php.net/manual/en/language.oop5.basic.php因此,只要您不以数字开头,就应该允许数字。
是的,如果你声明$ uses,它会覆盖默认的$ uses属性。将Stage1Application
添加到$ uses属性声明:
public $uses = array('Package','PersonalDetail','MarriageDetail','ChildrenDetail', 'Stage1Application');
或者,您可以更改控制器$uses
功能中的beforeFilter
属性,并让模型仍然加载:
$this->uses = array_merge($this->uses, array('Package','PersonalDetail','MarriageDetail','ChildrenDetail'));
答案 1 :(得分:1)
您的使用数组中没有Stage1模型,这就是您收到该错误的原因。