$ uses和$ this-> loadModel()有什么区别?
CakePHPCookbook,第2版。
第61页:
$ this-> loadModel('User',2);
第62页:
class RecipesController扩展AppController {
public $ uses = array('Recipe','User');
提前谢谢!
答案 0 :(得分:1)
默认情况下,使用定义控制器可以访问的模型,如果您没有定义它,那么它将是该控制器的模型,即UsersController将默认加载User(以及AppController中定义的任何模型)。 s $使用)。
loadModel只会在调用它的地方执行相同的操作,如果您只需要在一个操作中使用模型而不是其他操作,则更好。
您还可以使用ClassRegistry :: init(' Recipe') - > find(' all');等将返回单个模型的单个实例,但不会将模型添加到对象图中。
你应该问自己为什么要将模型加载到控制器中?理想情况下,您应该在模型之间建立关系,例如,如果您在配方控制器中可以调用$ this-> Recipe和$ this-> Recipe-> User。
我发现使用最常见于Shell中,默认情况下它无法直接访问模型。
按照ndm的评论编辑
答案 1 :(得分:0)