서로 관계가있는 두 개의 모델이 있습니다. 한 특정 메서드에서 다른 필드를 선택해야합니다, 나는 보통 하나의 필드를 끌어 오기위한 메서드를 만듭니다. 미래 필드가 변경되면 함수의 반환 만 변경해야합니다. 여기에 예제가 있습니다.각 테이블 필드 (모델)에 하나의 get 메소드
나는 현재 다음 사용
사용자 모델
function getUsername($user_id){
$this->id = $user_id;
return $this->field('my_username_field');
}
서버 모델
012 (이것은 단지 예입니다, 분명히 더 많은 필드를 얻을 수있다)function getUserIdByServerId($server_id){
$this->id = $server_id;
return $this->field('my_user_id_field');
}
function getUsernameByServerId($server_id){
$user_id = $this->getUserIdByServerId($server_id);
return $this->User->getUsername($user_id);
}
더 많은 필드를 가져 오려면 각 필드에 대해 하나의 메서드를 작성해야하기 때문에 다음과 같이 작성해야하는 코드가 많습니다. 모든 전화에 그의 이름을 다시 써야합니다. 더 좋은 방법은 무엇입니까?
http://www.php.net/manual/en/language.oop5.overloading.php를 살펴보십시오. 그건 그렇고, 나는 CakePHP 사용자가 아니며 프레임 워크 특정 방법이있을 수 있습니다. –
필드 이름을 변경하면 되겠습니까? 각 호출을 변경해야하며 각 필드에 대해 메소드를 설정하기가 쉽지 않습니까? –
그래서 어느 쪽이 옳은가요? 복사 및 붙여 넣기 또는 각 단일 필드에 대한 기능을하는 것이 가장 좋습니다. 나는 단지 뚱뚱한 클래스 (모델)을 가질 것이지만 유지 보수는 더 쉽다. –