是否有必要在模型和控制器中声明名称变量?还是只是好习惯?例如:
class User extends AppModel {
public $name = 'User';
}
class UsersController extends AppController {
public $name = 'Users';
}
答案 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的约定,当单词不是单音节时。然后会影响您的查询和数据。要治愈那部分必须使用公共名称。