서로 연관시키고 자하는 도시에 대한 사용자 테이블과 테이블이 있습니다. 추측 하듯이 한 도시에는 여러 명의 사용자가있을 수 있지만 한 명의 사용자는 한 도시에만 연결할 수 있습니다.CakePHP와 사용자를 하나의 도시로 연결하기
나는 테이블을 어떻게 세우는 지 정말로 모른다. 도시에 대해 $ hasMany 관계를 시도하고 사용자에 대해 $ hasOne을 시도하면 client_id 필드가 내 도시 테이블에서 발견되지 않으므로 오류가 발생합니다. 내 도시 테이블은 고쳐질 것입니다. 아무도 테이블을 바꿀 수 없습니다. 이 표에 도시에 대한 정보를 저장하고 싶습니다. 편집
: 여기 내 테이블과 내 모델 (단순 유지)입니다
clients { id, firstname, lastname, city_id }
cities { id, name, some_other_data }
그리고 여기 내 모델입니다 : 당신은 관계를 반전 할 필요가
// User
class Client extends AppModel {
public $hasOne = array(
'City'
);
}
// City
class City extends AppModel {
public $useTable = 'cities';
public $hasMany = array(
'Client'
);
}
외래 키 지정해야 할 일을하고 테이블의 컬럼/이름하지 않습니다 할 수있다? – Nunser
당신은'User'와'City' 테이블을 가지고 있지만'users'와'cities'가 있어야합니다 ... 아니면'clients'와'cities'라고 제가 모델에서 보았던 것에 따라 – Nunser
그게 아닙니다. 문제. 나는 CakePHP의 명명 규칙을 따랐다. 내 사용자 모델이 데이터에 액세스 할 수 있습니다. 하지만 난 '$ hasOne city'일을 얻을 수 없기 때문에이 오류가 발생합니다. SQLSTATE [42S22] : 열을 찾을 수 없습니다 : 1054 알 수없는 열 'City.client_id'in on clause ' –