CakePHP用插件

时间:2018-04-16 19:41:18

标签: php cakephp

我的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类。 感谢。

1 个答案:

答案 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');