関連付けられているモデルのデータを現在ログインしているユーザーに受信しようとしています。これは私の現在のユーザーモデルです:
class User extends AppModel {
public $name = 'User';
public $hasMany = array(
'Website' => array(
'className' => 'Website',
'foreignKey' => 'user_id'
)
);
}
そして、これは User モデルに関連付けられた Web サイト モデルです。
class Website extends AppModel {
public $name = 'Website';
public $belongsTo = array(
'User' => array(
'classname' => 'User',
'foreignKey' => 'user_id'
)
);
}
ログインしたユーザーの Web サイトを取得しようとすると、DB 要求の条件で静的な方法で Web サイトの 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 を持つ Web サイトだけではなく、すべての Web サイトを返します。
私が提案する方法でそれを行う方法はありますか?はいの場合、何が間違っていますか?
どうもありがとう!