Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CakePHP中显示FK数据的问题_Php_Cakephp - Fatal编程技术网

CakePHP中显示FK数据的问题

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-

我试图使用cakePHP显示实际值,而不是ID号

这些是我的桌子 l

这是我的用户稳定代码

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个用户的存储库]=>