1
관련 모델의 데이터를 현재 로그인 한 사용자에게 받으려고합니다. 이 내 현재 사용자 모델 :CakePHP : 로그인 한 사용자의 관련 객체 가져 오기
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'
)
);
}
내가 로그인 한 사용자의 I 돈의 웹 사이트를 얻을려고
DB 요청 조건에서 웹 사이트의 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가있는 웹 사이트가 아닌 모든 웹 사이트를 반환합니다.
내가 제안하는 방법대로 할 수 있습니까? 그렇다면 내가 뭘 잘못하고 있니?
감사합니다.
좋은 해결책 인 것 같습니다. 유일한 문제는 Cake가 이제 1 대신에 2 개의 쿼리를 수행해야한다는 것입니다. ( – user1013338
belongsTo 관계를 사용하면 Cake는 하나의 쿼리 만 관련 테이블에 자동으로 결합시킨다. – pollirrata
Cake만이 하나의 쿼리를 수행 할 수 있도록 컨트롤러에서 belongsTo 연결을 올바르게 사용하는 방법에 대한 예제를 제공 할 수 있습니까? – user1013338