cakephp-3.0 从别名插件实体获取 table 对象

cakephp-3.0 get table object from aliased Plugin Entity

我有一个实体实例,我需要获取它 table

我正在执行以下操作并且大部分时间都运行良好:

$className =  $entity->source();
$entityTable = TableRegistry::get($className);

别名插件实体出现问题:假设我有一个 Users 插件和一个 Group 模型,其中有这种关系

//plugins/Users/src/Model/Table/GroupsTable

$this->belongsTo('Parents', [
    'className' => 'Users.Groups',
    'foreignKey' => 'parent_id'
]);

现在在控制器中我正在做类似的事情:

$groupsTable = TableRegistry::get('Users.Groups');
$group = $groupsTable->get($some_id, ['contain' => 'Parents']);
$className =  $group->parent->source();

现在 $className 包含 'Parents' 而我期望 'Users.Parents'

如何获得以插件名称为前缀的 class 名称?我尝试了 $this->belongsTo('Users.Parents', ...) 但它似乎不起作用

我认为这是一个可能的错误,因为它是不一致的行为,并且 Entity::source() return 除了注册表别名之外的任何东西似乎都没有太大用处。

它发生在 \Cake\ORM\ResultSet::_groupResult() 中,它使用表别名而不是注册表别名,您似乎无能为力。

report this over at GitHub.