簡體   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