2015-06-29 25 views
-1

我對Yii有點新,我發現有些事情不好笑。我有一個我想要更新的表單,每當我嘗試更新它時,它都會一直拋出錯誤。YII:更新我的價值不起作用

查看:_form.php這個

<?php 
/* @var $this BaseStationController */ 
/* @var $model BaseStation */ 
/* @var $form CActiveForm */ 
?> 

<div class="form"> 

<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'base-station-form', 
    'enableAjaxValidation'=>true, 
)); ?> 

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

     <div class="row"> 
      <?php echo $form->labelEx($model,'c_id'); ?> 
      <select name="BaseStation[c_id]"> 
       <?php foreach($models as $m):?> //Here coded the loop below to display customer's id from the database 
        <option value='<?php echo $m->id;?>'><?php echo $m->firstname.' '.$m->lastname;?></option> 
       <?php endforeach;?> 
      </select> 
     </div> 

     <div class="row"> 
      <?php echo $form->labelEx($model,'base_station_num'); ?> 
      <?php echo $form->textField($model,'base_station_num',array('size'=>15,'maxlength'=>15)); ?> 
      <?php echo $form->error($model,'base_station_num'); ?> 
     </div> 

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

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

    </div><!-- form --> 

控制器

public function actionUpdate($id) 
    { 
     $model=$this->loadModel($id); 

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

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

     $this->render('update',array(
      'model'=>$model, 

     )); 
    } 
+0

你得到什麼錯誤? –

+0

錯誤:未定義的變量:數據..抱歉,我忘了後我actionCreate方法:公共函數actionCreate() 公共函數actionCreate(){ \t \t $這 - >呈現( '創建',陣列( \t \t \t 'model'=> $ model, 'data'=> $ data \t \t)); \t} –

+0

那麼,錯誤信息非常簡單:數據變量是未定義的。您正在將$數據傳遞給創建操作中的視圖文件,但不是在更新操作中。你也不會在_form視圖中使用數據變量。它是否在創建/更新視圖中使用?如果沒有,爲什麼你傳遞$ data變量?它從何而來?您不要在創建操作中初始化它或模型變量。 – korsosa

回答

1
public function actionUpdate($id) 
    { 
     $model=$this->loadModel($id); 

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

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

     $this->render('update',array(
      'model'=>$model, 

     )); 
    } 

試試這個

+0

是的,您需要先加載模型,然後才能保存任何新值。 – fasisi