내가 만들고있는 cakePHP 응용 프로그램에는 프로필에 여러 위치가있을 수 있습니다. 테이블은 "프로파일"과 "위치"라고 불리고 모델 클래스에서는 HasMany 관계를 정의했습니다. 이제 사용자가 위치를 기반으로 프로필을 검색 할 수있게하려고합니다. 여기에 몇 가지 질문과 CakePHP 요리 책을 읽은 후에, 나는 SQL 조인을 사용해야한다고 결정했다. (실제로 더 많은 테이블이 관련되어 있고, 검색 결과는 다른 테이블에 관한 조건에 기반해야한다.)hasMany와 DB 테이블 조인 - 배열에 저장
이public function findProfiles($long, $lat){
$options['joins'] = array(
array('table' => 'locations',
'alias' => 'Location',
'type' => 'Inner',
'conditions' => array('Location.profile_id = Profile.id'))
);
$options['order'] = array('Location.lng ASC'); //this is just as trial
return $this->find('all',$options);
}
코드는 작동하지만, 나는 그것을 가지고 각각의 위치에 대한 프로파일의 사본을 얻을 :
내 프로필 모델 내에서 다음 함수를 작성했습니다. 즉, 프로필에 5 개의 지위가 있다면 해당 프로필의 인스턴스 5 개를 얻습니다 (각 인스턴스는 5 개 위치 모두 포함합니다).
어떻게하면됩니까?
[편집]
예 : 저는 두 가지 위치를 가진 프로필이 하나만 있다고 가정합시다. 나는 얻는다 :
result[0][Profile]
[Position][0]
[1]
[1][Profile]
[Position][0]
[1]
결과 [0]와 결과 [1]의 데이터가 동일한 경우.
당신은 당신이 원하는 배열의 예를 게시 할 수 있습니까? 어쩌면 그것은 아침이기 때문일 수 있습니다. 그러나 나는 당신을 아주 좋아하지 않습니다 ... – Nunser
하하 좋은 질문입니다. 실제로 내가 얻은 각각의 인스턴스는 내가 원하는 것처럼 모든 위치를 배열에 포함한다는 것을 알 수 있습니다. 그러나 프로필에 여러 위치가있는 경우 프로필의 여러 복사본을 가져옵니다. 각 복사본에는 모든 위치가 포함됩니다 (즉 모든 복사본이 동일 함). 질문 – Scipio
을 편집했으며 프로필과 위치 모델에 대한'$ recursive' 값은 무엇입니까? '-1'로 설정되지 않았다면 아마도 그게 문제 일 겁니다. – Nunser