[英]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.