2014-12-21 1 views
0

최근에 저는 Bake를 사용하여 간단한 CRUD를 시작하여 CakePHP를 사용하기 시작했습니다.CakePHP 2에서 외래 키를 사용하지 않고 관련 값을 추가했습니다.

다음과 같이 "제품"및 "고객"과 연결된 "계약"이라는 하나의 모델이 있습니다.

public $belongsTo = array(
    'Customer' => array(
     'className' => 'Customer', 
     'foreignKey' => 'customer_id', 
     'conditions' => '', 
     'fields' => '', 
     'order' => '' 
    ), 
    'Product' => array(
     'className' => 'Product', 
     'foreignKey' => 'product_id', 
     'conditions' => '', 
     'fields' => '', 
     'order' => '' 
    ) 
); 

는 지금은 CUSTOMER_ID 및 PRODUCT_ID의 입력 형태로 선택 상자를 사용하지 않음으로써 구워 만든 추가보기 (add.ctp)을 정의하고 싶었다. 외래 키와 연관된 제품/고객의 가능한 모든 이름을 표시하는 선택 상자를 사용하는 대신 제품/고객 테이블에서 필드 (예 : product_code, customer_code) 중 하나를 입력 할 수 있도록 텍스트 필드를 사용하고자합니다. 계약 테이블에 대한 행을 작성하려면이를 외부 키로 변환하십시오. 고객/제품 필드에서 값을 찾을 수없는 경우 계약 테이블에 행 추가를 건너 뛰고 싶습니다.

가능한지 알고 싶습니다. 당신의 선택의 JS lib 디렉토리를 사용하여, 그것은 jQuery의 추측 :

+0

예, 가능합니다. 제품 모델을 예로 사용하여 텍스트 필드를 만든 다음 컨트롤러에서 텍스트 필드의 값을 사용하여 Product 모델의 기본 키를 찾으십시오. id가 반환되지 않으면 계약 모델을 저장하지 마십시오. – AgRizzo

+0

Impossible Nothing ™ ... 당신이 직면하고있는 실제 문제에 대해 질문하고 예 또는 아니오를 묻지 않을 때 더 나은 대답을 얻을 수 있습니다. – ndm

+0

@ndm 그는 select에서 레코드의 id를 설정하는 텍스트 필드에 자동 완성을 위해 작성된 코드를 가져 오도록 요청합니다. – burzum

답변

0

기본 개념이, 감사합니다. 변화에 대한 텍스트 필드를 보시고 변경시, 텍스트 필드의 값을 앱 컨트롤러/액션에 넣으십시오. that returns json. 결과 중 하나를 클릭하면 선택된 레코드의 id가 숨겨진 필드로 설정됩니다. 끝난.

Google 또는 Stackoverflow를 검색하면 많은 예제를 찾을 수 있습니다.

+0

고마워! 나는이 해결책을 시도 할 것이다. – JHO

관련 문제