繁体   English   中英

CakePHP 3外键视图

[英]CakePHP 3 foreign key in view

我有2个表:Users,Levels

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

在UsersController中,我想发送用户数据和他的外键进行查看。

 $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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM