2012-01-19 69 views
0

我是Yii框架的新手。我想要一個多模表單,所以我只是通過this link並且做了所有這樣的事情。我有兩個表,第一個是組,另一個是成員。在Yii Multimodel表格中獲取錯誤

Group 

ID 
name 

Member 

id 
group_id 
firstname 
lastname 

做出改變GroupController用於表和CRUD作爲well.I現在我已經做的模型文件中像這樣

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 . 所以有人可以告訴我如何解決這個問題。我已經落後了一天,所以任何幫助和建議都會非常明顯。

回答

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

你能給出關於錯誤的更多細節......就像undefined在哪裏? –

+0

它顯示錯誤,如'未定義的變量:組'和源文件路徑就像這個/YII/WebApp/protected/views/member/create.php(14)和行(14)它就像<?php echo $ this-> renderPartial('_ form',array('group'=> $ group,'member'=> $ member)); ?> – Jagdish