저는이 find() 쿼리와 잠시 씨름하고 있습니다. 표에 대한 참조는 CakePHP Twitter-clone: Can't get follow-system to work의 질문을 참조하십시오.CakePHP가 HABTM 관계의 찾기 쿼리에서 잘못된 열을 반환했습니다.
그러나 간단히 말해서, 이것은 자발 학습을 위해 수행하고있는 트위터 클론을위한 것입니다. 나는 세 개의 테이블을 가지고있다.
Users (id, name)
Tweets (id, user_id, content, date)
UserUsers (id, user_id, follower_user_id)
모델로는 사용자, 트윗 및 팔로어 (HABTM 사용자)가 있습니다. 지금
,이 찾기 쿼리를 가지고 :
내가 원하는 거의 다 인이 SQL 문을 생성$this->User->bindModel(array('hasOne' => array('UserUsers')));
$fields = array('User.username');
$conditions = array(
'UserUsers.user_id'=> $current_id);
$contain = $this->User->contain(array(
'UserUsers',
'Tweet' => array(
'fields'=> array('Tweet.content', 'Tweet.date'),
'order' => 'Tweet.date DESC',
'limit' => 1)));
$data = $this->User->find('all', compact('fields', 'conditions', 'contain'));
:
SELECT `User`.`username`, `User`.`id` FROM `users` AS `User` LEFT JOIN `user_users` AS `UserUsers` ON (`UserUsers`.`user_id` = `User`.`id`) WHERE `UserUsers`.`user_id` = 1
이 아주 가까이 있지만, 잘못을 반환하는 것 내 테이블의 열. 나는 다음과 SQL 문을 생성하고 싶습니다 :
SELECT `User`.`username`, `User`.`id` FROM `users` AS `User` LEFT JOIN `user_users` AS `UserUsers` ON (`UserUsers`.`follower_user_id` = `User`.`id`) WHERE `UserUsers`.`user_id` = 1
나의 발견을 조정할하는 방법에 어떤 도움() 쿼리가 크게
을 주시면 감사하겠습니다! 고맙습니다!
당신이 당신의 사용자 모델에서'associationForeignKey '=>'follower_user_id''를 시도 질문 해결? – Ross
예, 내 사용자 모델이 있습니다 \t var에 $의 hasAndBelongsToMany의 = 배열 ( '추종자'=> 배열 ( '클래스'=> '추종자', '관절 식'=> 'user_users', '외래 키' => 'user_id', 'associationForeignKey'=> 'follower_user_id' ) ); – kurisukun