蛋糕 PHP 3 外键在视图中



>我有 2 个表:用户、级别

用户有字段:ID、用户名、密码、电子邮件、level_id 级别具有字段:id、名称

在用户控制器中,我希望发送用户数据和他的外键以查看。

$user = $this->Auth->User();
$this->set(compact('user'));

在视图中,我想要显示此用户的级别名称。我该怎么做?

我正在尝试:

$user->level;
$user->username->level
$user->level_id->name

Ofc.没有工作。我做错了什么?

我刚开始学习CakePHP,这阻止了我,因为我从未使用过 之前的外键。

你可以使用Cakephp协会。首先Levels表中再添加一个名为user_id的字段。

假设用户与级别有一对一的关系。然后在/src/Model/Table 文件夹下创建一个名为UsersTable.php的文件,并在那里定义模型关联,如下所示

class UsersTable extends Table
{
public function initialize(array $config)
{
$this->hasOne('Levels');
}
}

现在,您可以在UsersController中执行查找查询,如下所示:

$user = $this->Users->find('all')->where(['Users.id' => $id])->contain(['Levels'])->toArray();
$this->set(compact('user'));

然后在 ctp 文件上,您可以访问级别名称,如下所示:

echo $user['level']['name'];

如需进一步阅读关联: https://book.cakephp.org/3.0/en/orm/associations.html

查询生成器: https://book.cakephp.org/3.0/en/orm/query-builder.html

最新更新