2010-08-14 3 views
0

안녕하세요 저는 사용자가 도시에 속하며 도시에는 많은 사용자가있는 사용자 및 도시라는 두 가지 모델이 있습니다. 도시 테이블에는 city_id와 city_name이 있습니다.CakePHP 1 대 콤보 상자

저는 중고 케이크 빵을 사용하고 사용자 모델을 만들었습니다. 새 사용자를 추가하면 도시 필드 아래의 콤보 상자에 이름 대신 도시의 ID가 표시됩니다.

나는 아이디 대신 도시 이름을 보여주기 위해 몇 가지 방법을 시도했지만 실패했습니다.

답변

1

당신이 시도한 것을 언급하지는 않지만 대개 모델의 displayName 속성을 사용하여 레코드의 "제목"으로 사용해야하는 필드를 설정하십시오. 귀하의 경우에는, 나는 생각할 것 : 1.3, 그것은 속성 이름과 같은 것을

$this->displayName = 'city_name'; 

참고 displayField보다는 displayName입니다.

+0

CakePHP는 기본적으로 'title'을 사용하며, $ this-> displayField는 정의되지 않습니다. – Wayne

1

Cake는 자동화가 작동하기 위해 특정 테이블 레이아웃이 필요합니다. Rob은 그걸 해결하는 방법을 설명했습니다. 그러나 여분의 코드 행을 작성하지 않으려면 그에 따라 테이블을 구성하는 것을 고려해야합니다. 이 모델을 구울 때

CREATE TABLE `cities` (
    `id` int(11) AUTO_INCREMENT NOT NULL, 
    `name` varchar(25) NOT NULL, 
    PRIMARY KEY (`id`) 
) 

, 케이크가 자동으로 표시 이름으로 name을 사용합니다. 이는 작성하는 모든 테이블에 적용됩니다. 또한 id을 테이블에 사용하면 다른 테이블에서 외부 키로 참조하는 방법을 자동으로 알 수 있습니다 (city_id).