cakephp 2模型和控制器中的名称变量

时间:2014-10-22 16:20:45

标签: cakephp cakephp-2.0 cakephp-2.1 cakephp-2.3

是否有必要在模型和控制器中声明名称变量?还是只是好习惯?例如:

class User extends AppModel {
    public $name = 'User';
}

class UsersController extends AppController {
    public $name = 'Users';
}

2 个答案:

答案 0 :(得分:2)

当你没有根据类名指定它时,Cake会在内部执行此操作。

但是,这会导致一个很好的陷阱:扩展模型或控制器时,名称不再再次构建。因此,您必须指定名称才能使其正常工作。这很重要,因为查看文件文件夹,modelClass和模型别名等其他内容取决于名称是否正确。

所以在你扩展课程之前不需要它。

在模型中注意处理数据时:模型使用Model :: $ alias而不是$ name。原因是协会。如果Code hasMany Programmer但Programmer是您的用户模型,则使用别名,别名是 Programmer ,而不是User。因此,当您执行$this->data[$this->alias]['field']之类的操作时,请在模型中使用别名。

答案 1 :(得分:0)

我看到的最重要的是,cakephp在查询中使用公共名称,查询取public Variable name = 'User';字段然后带来表User的数据,将User.id指定为User_id,如果你改变了变量公共名称'User';然后你会看到这会如何影响。

主要用于开发人员没有正确遵循字母lan cakephp约定的情况,或者在我的情况下,首先不太了解如何使用蛋糕php的约定,当单词不是单音节时。然后会影响您的查询和数据。要治愈那部分必须使用公共名称。