Cakephp4,如何在Entity对象中加载关联数据



我有一个Users表和一个Roles表。一个用户有一个角色。因此,在UsersTable.php中:

$this->belongsTo('Roles', [
'foreignKey' => 'role_id',
'joinType' => 'INNER',
]);

现在在User.php(Entity!!(中,我需要users角色的角色名称。但我只有用户实体,其中没有关联的数据。我现在有:

public function getRole()
{
$q = TableRegistry::getTableLocator()->get('Roles');
$roles = $q->find('list')->toArray();
return $roles[$this->role_id];
}

这是可行的,但TableRegistry在cake4中被标记为过时,我找不到任何其他方法来实现这一点。做这件事的主要方法是什么?

如果您想在控制器中同时使用用户和角色数据,您可以执行例如

$user = $this->Users->get($id, [
'contain' => ['Roles'],
]);

并且所得到的对象具有被定义为CCD_ 2实体的CCD_。

然而,我有一种感觉,你已经知道了这一点,并且还有另一个问题,可能与我最近解决的问题重叠,也可能不重叠。在这里查看ndm对我问题的回答,希望它能帮助你!CakePHP 4.1用户实体作为授权标识关联字段

如果这不是你的情况,我很抱歉,我只是在寻找我问题的答案时发现了这个当前的帖子,它绝对是最接近我自己问题的。

最新更新