CakePHP中显示FK数据的问题
我试图使用cakePHP显示实际值,而不是ID号 这些是我的桌子 l 这是我的用户稳定代码CakePHP中显示FK数据的问题,php,cakephp,Php,Cakephp,我试图使用cakePHP显示实际值,而不是ID号 这些是我的桌子 l 这是我的用户稳定代码 class UsersTable extends Table { public function initialize(array $config) { $this->hasOne('Roles'); } 这是我的UsersController代码 public function list() { $usersTable = $this-
class UsersTable extends Table
{
public function initialize(array $config)
{
$this->hasOne('Roles');
}
这是我的UsersController代码
public function list()
{
$usersTable = $this->Users->find('all')->contain(['Roles']);
$allUsers = $usersTable->toArray();
$this->set("allUsers", $allUsers);
}
这就是我试图打印它的方式
$user->role->name
然而,我得到以下错误
我做错了什么以及如何解决这个问题?在您的UsersTable中,关系顺序是错误的,它表示用户只有一个角色,因此这将尝试使用角色表上的键加入角色表。它实际上应该是belongsTo,因为用户属于一个角色。试试这个: 类UsersTable扩展表 { 公共函数初始化(数组$config) { $this->belongsTo('Roles'); } }
在角色表中,引用用户表的字段的名称是什么?角色表中没有引用。在Users表中有一个引用,当我执行“$user->role->name”时,角色会显示“试图获取非对象的属性‘name’”。转储$user对象时,输出是什么?{[“id”]=>int(4)[“name”]=>string(4)“Test”[“姓氏”]=>string(3)“tet”[“email”]=>string(14)”test@test.test“[“密码”]=>字符串(3)“123”[“角色id”=>int(2)[“[新]”]=>bool(假)[“[可访问]”]=>array(1){[“*”]=>bool(真)}[“[脏]”]=>array(0){}[“[原始]”]=>array(0){}[“[虚拟]”]=>array(0){}[[hasErrors]]=>bool(假)[[errors]]=>array(0){}[“[errors]]]=>array(0){{[invalid]]]]=>array(0){}[[无效]]]=>array(0)}>array){5个用户的存储库]=>