我的CakePHP(最新)应用程序中有模型和实体,我希望以这种方式扩展。我想告诉蛋糕使用 ExtraStuff 模型类而不是app Stuff
App\Model\Table\Stuff
MyPlugin\Model\Table\ExtraStuff
我正尝试使用 Cake \ Datasource \ ModelAwareTrait
中的方法在beforeRender方法的主控制器中重新定义模型/**
* Override a existing callable to generate repositories of a given type.
*
* @param string $type The name of the repository type the factory function is for.
* @param callable $factory The factory function used to create instances.
* @return void
*/
modelFactory($type, callable $factory)
或者我怎么做?我在项目中有很多 $ this-> loadModel('Stuff')调用,我需要告诉应用程序在需要时使用ExtraStuff类。 感谢。
答案 0 :(得分:0)
看看这个 https://book.cakephp.org/3.0/en/controllers.html#loading-additional-models
如果您使用的是除内置ORM之外的表提供程序,则可以通过连接其工厂方法将该表系统链接到CakePHP的控制器中:
// In a controller method.
$this->modelFactory(
'ElasticIndex',
['ElasticIndexes', 'factory']
);
注册表工厂后,可以使用loadModel加载实例:
// In a controller method.
$this->loadModel('Locations', 'ElasticIndex');