2010-03-27 2 views
4

여러 테이블이있는 간단한 데이터베이스가 있습니다. cakePHP가 인덱스 뷰에서 외래 키와 관련된 값을 표시하는 방법을 알아낼 수 없습니다. 또는 내가 선택한 필드 (location_id가 아닌 위치 이름과 같은 사용자에게 의미가있는 필드)를 한 페이지에서 업데이트하거나 볼 수있는보기를 만듭니다.cakePHP가 외래 키가 나타내는 데이터를 검색하는 방법은 무엇입니까?

나는이 질문을 보여주는 http://lovecats.cakeapp.com에 예제를 만들었습니다. 페이지를보고 "고양이 목록"을 클릭하면 위치 테이블의 location_id 필드가 표시됩니다. '고양이 추가'를 클릭하면 위치 표에서 location_id를 선택해야합니다. 이것은 cakePHP가 앱을 만드는 자동 방식입니다. 나는 이것이 location_name 필드가되기를 원한다. 테이블 고양이가 테이블이라는 위치에 관계가 location_id라는 외부 키를 가질 수 있도록

alt text

데이터베이스는 설정입니다.

내 문제 : 나는이 페이지 대신 location_id의 LOCATION_NAME을 표시합니다. 응용 프로그램에 로그인하려면 http://cakeapp.com/sqldesigners/sql/lovecats 및 암호 'password'로 이동하여 db 관계 등을 볼 수 있습니다.

원하는 필드를 표시하는 페이지는 어떻게 표시합니까? 한 번에 모든 테이블의 필드를 업데이트하는 페이지를 만들 수 있습니까?

이것은 내가 알아 내려고 노력하고있는 케이크의 조각이며, 이것은 정말 고비를 넘길 것입니다. 위 url에서 app과 sql을 다운로드 할 수 있습니다.

+0

좋아, 내가 어떻게하는지 알았어. 메인 페이지에 표시하고자하는 각각의 모델에 이것을 추가하는 것입니다 : var $ displayField = 'field_name_that_i_wanted'; –

+0

http://cakeapp.com은 멋진 도구입니다. 사용 해 주셔서 감사합니다! – powtac

답변

3

하, 당신은 그것을 정확하게 알아 냈습니다! Cake는 $ displayField 변수를 사용하여 표시 할 내용을 결정합니다.

기본적으로 케이크는 '제목'및 '이름'필드를 올바르게 찾았으며 두 가지를 사용할 수없는 경우 기본 키 필드 만 표시합니다. 다행히도, 너는 너 자신을 알아 낸 방법으로 그것을 무시할 수있다;)

+0

이것을 확인해 주셔서 감사합니다. 가능한 한 자동적으로 작동하도록 테이블의 제목/이름 필드를 가지고 놀아야합니다. –

1

나는 너의 시야에서 $ cat [ 'Location'] [ 'location_name']을 echo 할 필요가 있다고 생각한다.

관련 문제