CakePHP模型名称可以包含数字吗?

时间:2014-09-02 22:10:19

标签: php cakephp cakephp-2.0

我有一个名为Stage1Application的模型和一个名为Stage1ApplicationsController的相应控制器。

当我使用

时在控制器中
$this->Stage1Application->create();

我得到"在非对象上称为创建"错误。这是因为我的模型/控制器名称中有数字吗?

我也有一行

public $uses = array('Package','PersonalDetail','MarriageDetail','ChildrenDetail');

在我的控制器的开头 - 这是否阻止它包含自己的模型? 如果这是问题,那么如何附加$uses数组 - 以便默认包含当前控制器的模型?

2 个答案:

答案 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模型,这就是您收到该错误的原因。