Php YII:更新我的值不起作用
我是Yii的新手,我发现有些事情并不好笑。我有一个表单要更新,每次我试图更新它时,它都会不断抛出错误 查看:\u form.phpPhp YII:更新我的值不起作用,php,yii,Php,Yii,我是Yii的新手,我发现有些事情并不好笑。我有一个表单要更新,每次我试图更新它时,它都会不断抛出错误 查看:\u form.php <?php /* @var $this BaseStationController */ /* @var $model BaseStation */ /* @var $form CActiveForm */ ?> <div class="form"> <?php $form=$this->beginWidget('CActiv
<?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 -->
尝试此操作会出现哪些错误?错误:未定义变量:数据。。抱歉,我忘了发布我的actionCreate方法:公共函数actionCreate()公共函数actionCreate(){$this->render('create',array('model'=>$model',data'=>$data));}嗯,错误消息非常简单:数据变量未定义。您正在创建操作中将$data传递给视图文件,而不是在更新操作中。此外,在_form视图中不使用数据变量。是否在“创建/更新”视图中使用?如果不是,为什么要传递$data变量?它来自哪里?您也不会在“创建”操作中初始化它或模型变量。是的,您需要先加载模型,然后才能保存任何新值。
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,
));
}
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,
));
}