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()
中,它使用表别名而不是注册表别名,您似乎无能为力。
我有一个实体实例,我需要获取它 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()
中,它使用表别名而不是注册表别名,您似乎无能为力。