0

我在 CakePHP 中有几个项目,并且想将通用代码移动到插件中,并为它们使用单​​独的 GIT 存储库。

例如,我创建了一个包含用户、组和权限的 MVC 的 UserManager 插件。

我的问题是:不同的项目与插件中的模型有不同的(附加)关系。例如,一个项目应该另外有“User belongsTo Location”。

我现在很困惑如何正确设置它。该手册讲述了如何覆盖插件视图,但没有讲述如何使用模型和控制器完成此操作。

如何以干净的方式完成?

4

1 回答 1

0

AppModel您可以简单地扩展插件类并覆盖/添加必要的关联,就像您可能已经在做这件事一样UserManagerAppModel

http://book.cakephp.org/2.0/en/plugins.html#plugin-models

这是一个基本示例(假设插件中的用户类名为User):

App::uses('User', 'UserManager.Model');    

class AppUser extends User
{
    public $belongsTo = array('Location');
}

或者动态创建关联,以防需要保留现有关联:

class AppUser extends User
{
    public function __construct($id = false, $table = null, $ds = null)
    {
        parent::__construct($id, $table, $ds);

        $this->bindModel(array('belongsTo' => array('Location')));
    }
}
于 2013-09-25T14:48:28.110 回答