CakePHP模型名称是否可以包含数字


Can CakePHP model names contain numbers?

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

当我使用时,在控制器中

$this->Stage1Application->create();

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

我还有

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

在我的控制器开始时,这是否阻止了它包含自己的模型?如果这是问题所在,那么我如何使$uses数组附加,以便在默认情况下包括当前控制器的模型?

除了模型名称必须是有效的类名之外,我不知道模型名称有任何限制。根据PHP手册:一个有效的类名以字母或下划线开头,后面跟着任意数量的字母、数字或下划线。http://php.net/manual/en/language.oop5.basic.php所以,数字应该是允许的,只要你不以数字开头。

是的,如果您声明$uses,它会覆盖默认的$uses属性。将Stage1Application添加到$uses属性声明中:

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

或者,您可以在控制器的beforeFilter函数中更改$uses属性,并使模型仍然加载:

$this->uses = array_merge($this->uses, array('Package','PersonalDetail','MarriageDetail','ChildrenDetail'));

您的uses数组中没有Stage1模型,这就是为什么会出现错误的原因。