2014-05-24 5 views
0

나는 objective과 재귀적인 다 대다 관계를 가지고있다. 내 관계형 모델은 다음과 같습니다재귀 많은 Yii와의 관계

Objective.php

public function relations() { 
    // NOTE: you may need to adjust the relation name and the related 
    // class name for the relations automatically generated below. 
    return array(
     'parents' => array(self::HAS_MANY, 'Relatedobjectives', 'parent'), 
     'children' => array(self::HAS_MANY, 'Relatedobjectives', 'child'), 
    ); 
} 

목표/_form.php : belows로를 같이

CREATE TABLE master.objectives 
(
    id serial NOT NULL, 
    name character varying(100), 
    CONSTRAINT pkey_objectives PRIMARY KEY (id), 
    CONSTRAINT fk_objectives_perspective FOREIGN KEY (perspective_id) 
     REFERENCES master.perspective (id) MATCH SIMPLE 
     ON UPDATE NO ACTION ON DELETE NO ACTION 
) 

CREATE TABLE master.relatedobjectives 
(
    parent integer NOT NULL, 
    child integer NOT NULL, 
    CONSTRAINT relatedobjectives_pkey PRIMARY KEY (parent, child), 
    CONSTRAINT fk_child_objectives FOREIGN KEY (child) 
     REFERENCES master.objectives (id) MATCH SIMPLE 
     ON UPDATE NO ACTION ON DELETE NO ACTION, 
    CONSTRAINT fk_paret_objectives FOREIGN KEY (parent) 
     REFERENCES master.objectives (id) MATCH SIMPLE 
     ON UPDATE NO ACTION ON DELETE NO ACTION 
) 

나는 GII와 YII 프레임 워크 내 모델을 생성 된

<div class="row"> 
    <?= $form->checkBoxList($model,'parents', 
          CHtml::listData(Objective::model()->findAll(array('order' => 'id')), 'id', 'name') 
      ) ?> 
</div> 

폼을 제출할 때 뷰에서 relatedobjectives 테이블에 관계를 저장하지 않습니다.

내가 뭘 잘못하고 있니?

답변

1

상위 모델과 관련된 모델은 저장되지 않습니다. 부모 beforeSave() 또는 afterSave() 후크에 수동으로 저장해야합니다. 이 작업을 자동으로 수행 할 수있는 확장 프로그램도 있습니다. 해당 주제에 대한 정보는 here을보십시오.

+0

+1. –