JOIN을 사용한 CakePHP 찾기 메서드
CakePHP 찾기 메서드는 테이블 조인을 포함하여 데이터베이스에서 데이터를 검색하는 강력한 방법을 제공합니다. 이 문서에서는 CakePHP의 find 메소드를 사용하여 JOIN 쿼리를 수행하는 두 가지 방법을 보여줍니다.
방법 1: 모델 관계 활용
이 방법에는 모델 간의 관계를 정의하고 억제 가능한 행동. 다음 모델 관계를 고려하십시오.
class User extends AppModel {
public $hasMany = array('Message');
}
class Message extends AppModel {
public $belongsTo = array('User');
}
이 설정을 사용하면 MessagesController에서 다음 쿼리를 수행할 수 있습니다.
$this->Message->find('all', array(
'contain' => array('User'),
'conditions' => array(
'Message.to' => 4
),
'order' => 'Message.datetime DESC'
));
이 쿼리는 수신자(받는 사람 필드)가 4인 모든 메시지를 가져오며 각 메시지에 해당하는 사용자 정보도 포함합니다.
방법 2: 사용자 정의 조인 구문
또는 CakePHP의 구문을 사용하여 사용자 정의 조인을 정의할 수 있습니다. 이 접근 방식은 조인 조건에 대한 더 많은 제어가 필요할 때 적합합니다:
$this->Message->find('all', array(
'joins' => array(
array(
'table' => 'users',
'alias' => 'UserJoin',
'type' => 'INNER',
'conditions' => array(
'UserJoin.id = Message.from'
)
)
),
'conditions' => array(
'Message.to' => 4
),
'fields' => array('UserJoin.*', 'Message.*'),
'order' => 'Message.datetime DESC'
));
이 예에서는 CakePHP 규칙과 일치하도록 필드 이름 message.from을 message.user_id로 변경해야 합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3