2013-12-18 2 views
2

내 질문은 미래에 영향을 미칠 수있는 논리적 인 문제에 관한 것입니다.여러 열 또는 단일 텍스트 필드?

나는 이미 3 가지 모델 (객실, 분야, 세리에) 및 printout이라는 모델을 보유하고 있습니다. 인쇄물에서 머리글 이미지를 선택하고 머리글 텍스트를 정의 할 수 있지만 사용할 세 가지 모델을 정의하는 방법은 무엇입니까? 모든 모델 (객실, 훈련, 세리)

  • 나중에 수동 구문 분석 단일 텍스트 필드를 들면, 인쇄물

    • 자책골을 열 :

      나는 두 가지 가능성을 참조하십시오.

    이러한 두 가지 방법 간에는 몇 가지 단점이 있습니다. 무엇을 제안합니다.

    저는 개발자의 문제보다 논리적으로 더 잘 알고 있습니다. 여전히 프로젝트의 초기 단계에서 더 나은 방법을 선택하고 싶습니다.

    http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#associations-linking-models-together

    'foreign_key'는 ID입니다 :

    건배 엔도

  • 답변

    1

    이 작업을 수행하는 일반적인 방법은 (이 페이지에 걸쳐 자세한 내용) foreign_keymodel 출력물 테이블의 필드를 사용하는 것입니다 "other"모델의 이름이고, "model"은 다른 모델의 이름입니다.

    당신의 Printout이 3 가지 모델 모두에 속하며 연관성에서 'Printout.model'=> 'Room'(또는 어떤 모델이든)의 조건을 지정합니다.

    +0

    그 해결책은 내가 생각한 것입니다. 많은 고맙습니다! –

    0

    테이블 구조에 대한 정보, 모델 연결 방법 (어느 것이 부모인지, 어떤 자녀인지, 정확히 무엇을하고 싶은지)을 제공하여보다 나은 답변을 제공 할 수 있습니다.

    어쨌든, 당신은 당신이 할 수있는, 처음에 모델을 결합 할 필요가 없습니다이 같은 컨트롤러 로직 내 :

    $this->PrintOut->bindModel(array(
        'belongsTo' => array(
         'Room' => array(
          'className' => 'Room', 
          'foreignKey' => 'room_id', 
         ), 
        ), 
    )); 
    

    또는 방은 인쇄 출력에 속하는 경우 :

    $this->PrintOut->bindModel(array(
        'hasOne' => array(
         'Room' => array(
          'className' => 'Room', 
          'foreignKey' => 'printout_id', 
         ), 
        ), 
    )); 
    

    당신의 솔루션은 다른 것일지도 모르지만 당신의 모델이하는 일에 대한 더 많은 정보가 필요합니다.

    편집

    지금 나는 당신이 조건 바인딩 모델을 확인해야합니다 ... 당신의 질문은 약간 다를 수 있습니다 것을 알 수있다.

    +1

    이것은 좋은 습관이 아니며 이러한 연결 유형에 bindModel을 사용할 이유가 없습니다. 연관성은 그렇지 않은 경우를 제외하고는 모델에서 처리되어야합니다. 그리고이 경우 매우 간단한 연관성이 있습니다. – Dave

    +0

    그래, 처음에 질문을 오해했지만 유용한 정보로 남겼습니다. 그런데 왜 저속한 바인딩이 나쁜 습관입니까? –

    +0

    컨트롤러에서 모델 논리를 수행하는 것이 이상적이지는 않습니다. 동적 연결이 필요하지 않은 경우 일반 연결에서 처리 할 수있는 항목에 bindModel을 사용하는 것은 좋지 않습니다. – Dave

    관련 문제