簡體   English   中英

CakePHP:獲取登錄用戶的關聯對象

[英]CakePHP: get associated objects of logged in user

我嘗試接收當前登錄用戶的關聯模型數據。 這是我當前的用戶模型:

class User extends AppModel {
    public $name = 'User';

    public $hasMany = array(
        'Website' => array(
            'className'  => 'Website',
            'foreignKey' => 'user_id'
        )
    );
}

這是與用戶模型相關聯的網站模型:

class Website extends AppModel {
    public $name = 'Website';
    public $belongsTo = array(
        'User' => array(
            'classname' => 'User',
            'foreignKey' => 'user_id'
        )
    );
}

當我嘗試獲取登錄用戶的網站時,我不想在數據庫請求的條件下以靜態方式設置網站的user_id。 所以我嘗試使用關聯:

public function beforeFilter() {
    parent::beforeFilter();
    $this->Website->User->id = $this->Auth->user('id');
    // OR
    $this->Website->User->set($this->Auth->user());
}

public function index() {
    $this->set('websites', $this->Website->find('all'));
}

但是它將返回所有網站,而不是僅返回具有正確user_id的網站。

有辦法按照我的建議去做嗎? 如果是,我在做什么錯?

非常感謝!

如果使用Model-> find('all'),則將檢索該模型的所有記錄。

使用您的beforeTo關系,當您檢索用戶(使用find->)時,Cake將檢索同一集合中的網站。 根據您處理身份驗證的方式,該數據可能是自用戶會話開始以來的數據

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM