我有两个独立的CakePHP 3.1应用程序,每个应用程序使用相同的数据库,但以非常不同的方式显示信息。为了减少代码重复,我将大多数模型提取到一个插件中。控制器彼此差别很大,所以我目前不在插件中包含任何控制器。指定控制器的主模型是否存在于插件中的正确方法是什么?
在CakePHP的早期版本中,答案应该是使用控制器的$uses
属性,但据我所知,这不再是一个选项。我可以说,从所有操作中访问插件模型的唯一方法是在控制器的初始化方法中执行loadModel
。这是处理这种情况的最佳方式吗?
答案 0 :(得分:1)
查看Controller类的源代码,似乎设置public $ modelClass ='Plugin.Model';可以工作。 __construct确定它认为是模型的内容,然后用它调用modelAwareTrait :: _ setModelClass,但是如果已经存在某个函数,那么该函数实际上并没有设置它。