2012-01-19 4 views
0

나는 Yii 프레임 워크의 초보자입니다. this link을 거쳐 this와 같은 모든 것을 만들었 기 때문에 다중 모델 양식을 원합니다. 나는 두 개의 테이블을 가지고 있으며, 첫 번째 그룹은 다른 멤버입니다. GroupController에 변화를 만들어 놨로 두 테이블 및 CRUD에 대한Yii Multimodel 양식에 오류가 발생했습니다.

Group 

ID 
name 

Member 

id 
group_id 
firstname 
lastname 

이제 내가 만든 모델이

public function actionCreate() 
    { 
    $group = new Group; 
    $member = new Member; 
    if(isset($_POST['Group'],$_POST['Member'])) { 
    //Populate input data to $group and $member 
     $group->attributes = $_POST['Group']; 
     $member->attributes = $_POST['Member']; 

    //Validate both $group and $member 
     $validate = $group->validate(); 
     $validate = $member->validate() && $valid; 

     if($valid){ 
     $group->save(false); 
     $member->save(false); 
     } 
    } 
    $this->render('create',array(
     'group'=> '$group', 
     'member'=> '$member', 
    )); 
    $model=new Group; 

    // Uncomment the following line if AJAX validation is needed 
    // $this->performAjaxValidation($model); 

    if(isset($_POST['Group'])) 
    { 
     $model->attributes=$_POST['Group']; 
     if($model->save()) 
     $this->redirect(array('view','id'=>$model->id)); 
    } 

    $this->render('create',array(
     'model'=>$model, 
    )); 
    } 

추천하고보기 >> 그룹을 변경 한 후 파일 >>처럼 파일 create.php 이

<?php echo $this->renderPartial('_form', array('group'=>$group, 'member'=>$member)); ?> 

_form 파일이

<div class="form"> 

<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'group-form', 
    'enableAjaxValidation'=>false, 
)); ?> 

    <p class="note">Fields with <span class="required">*</span> are required.</p> 

    <?php echo $form->errorSummary($group,$member); ?> 

    <div class="row"> 
    <?php echo $form->labelEx($model,'name'); ?> 
    <?php echo $form->textField($model,'name'); ?> 
    <?php echo $form->error($model,'name'); ?> 
    </div> 

    <div class="row"> 
    <?php echo $form->labelEx($member,'firstname'); ?> 
    <?php echo $form->textField($member,'firstname',array('size'=>60,'maxlength'=>128)); ?> 
    <?php echo $form->error($member,'firstname'); ?> 
    </div> 

    <div class="row buttons"> 
    <?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?> 
    </div> 

<?php $this->endWidget(); ?> 

</div><!-- form --> 
같다

하지만 결국이 오류가 발생합니다. Undefined variable: group . 그래서이 문제를 해결하는 방법을 알려주십시오. 나는 이것의 뒤에 1 일을 잃었다. 그래서 어떤 도움 및 제안든지 높게 평가할 수있을 것이다.

답변

2

는 현재 여러 실수를하고있다 ->

당신은 당신이 컨트롤러를 만드는 그룹에서 만든 $ 그룹 또는 $ 구성원 모델을 통과하지 않는

$this->render('create',array(
     'model'=>$model, 
    )); 

를 호출 할 때. 로 변경 -

$this->render('create',array(
     'group'=>$group, 
     'member'=>$member, 
    )); 

둘째, 일이 잘 작동합니다 $ 유효한라는 이름의 변수 ... 변경이 부분

$validate = $member->validate() && $valid; 

    if($valid){ 

지금

$validate = $member->validate() && $validate; 

     if($validate){ 

에 없다

+0

빠른 답장을 보내 주셔서 감사합니다. 내가 언급 한 모든 것을 바꿨지 만 동일한 문제를 보여주고 있습니다. 정의되지 않은 변수 : 그룹 – Jagdish

+0

오류에 대한 자세한 내용을 알려 줄 수 있습니까? –

+0

'Undefined variable : group'과 같은 오류가 표시됩니다. 소스 파일 경로는 /YII/WebApp/protected/views/member/create.php(14)이며 줄 (14)에서는 renderPartial ('_ form', array ('group'=> $ group, 'member'=> $ member)); ?> – Jagdish

관련 문제