Hi,
I am having a problem running an action in my controller and the error is:
undefined index reservation. Can anyone please help me find the cause of the error?
Here is my code:
View
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'reservation-form',
'enableAjaxValidation'=>false,
)); ?>
<p class="note">Fields with <span class="required">*</span> are required.</p>
<?php echo $form->errorSummary($model); ?>
<div class="row">
<?php echo $form->labelEx($model,'date'); ?>
<?php echo $form->textField($model,'date',array('disabled'=>'disabled')); ?>
<?php echo $form->error($model,'date'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'agency'); ?>
<?php echo $form->dropDownList($model,'agency',
CHtml::listData(Agency::model()->findAll(), 'agency_id', 'agency_name'),array('prompt' => 'Select')); ?>
<?php echo $form->error($model,'agency'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'group'); ?>
<?php echo $form->textField($model,'group',array('size'=>25,'maxlength'=>25)); ?>
<?php echo $form->error($model,'group'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'client'); ?>
<?php echo $form->dropDownList($model,'client',
CHtml::listData(Client::model()->findAll(array('order'=>'name ASC')), 'id_client', 'FullName'),array('prompt'=>'Select')); ?>
<?php echo $form->error($model,'client'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'roomtype'); ?>
<?php echo $form->dropDownList($model,'roomtype',
CHtml::listData(Roomtype::model()->findAll(), 'id', 'DescripId'),array('id'=>'rmtype')); ?>
<?php echo $form->error($model,'roomtype'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'adults'); ?>
<?php echo $form->textField($model,'adults',array('id'=>'ad','size'=>2)); ?>
<?php echo $form->error($model,'adults'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'children'); ?>
<?php echo $form->textField($model,'children',array('id'=>'ch','size'=>2)); ?>
<?php echo $form->error($model,'children'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'arrival'); ?>
<?php $this->widget('zii.widgets.jui.CJuiDatePicker', array(
'name' => CHtml::activeName($model, 'arrival'),
'model'=>$model,
'id'=>'arr',
'value' => $model->arrival,
'options'=>array(
'showAnim'=>'fold',
'dateFormat'=>'dd-mm-yy'
),
)); ?>
<?php echo $form->error($model,'arrival'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'departure'); ?>
<?php $this->widget('zii.widgets.jui.CJuiDatePicker', array(
'name' => CHtml::activeName($model, 'departure'),
'model'=>$model,
'id'=>'dep',
'value' => $model->departure,
'options'=>array(
'showAnim'=>'fold',
'dateFormat'=>'dd-mm-yy'
),
)); ?>
<?php echo $form->error($model,'departure'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'no_days'); ?>
<?php echo $form->textField($model,'no_days',array('readonly'=>'readonly','size'=>2,'id'=>'nbjour')); ?>
<?php echo $form->error($model,'no_days'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'amount'); ?>
<?php echo $form->textField($model,'amount',array('id'=>'amt','size'=>5)); ?>
<?php echo $form->error($model,'amount'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'left'); ?>
<?php echo $form->textField($model,'left',array('id'=>'bal')); ?>
<?php echo $form->error($model,'left'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'room'); ?>
<?php echo $form->dropDownList($model,'room',$room);?>
<?php //echo $form->DropDownList($model,'room',array()); ?>
<?php //echo $form->textField($model,'room'); ?>
<?php echo CHtml::ajaxButton('Update rooms',$this->createUrl('reservation/roomupdate'),
array('ajax'=>array('type'=>'POST','update'=>'#'.CHtml::activeId($model,'room'))));?>
<?php echo $form->error($model,'room'); ?>
</div>
<div class="row buttons">
<?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?>
</div>
<?php $this->endWidget(); ?>
</div><!-- form -->
[/PHP]
Here is the action called by url /reservation/roomupdate in the controller
[php]
<?php
class ReservationController extends Controller
{
public function actionRoomupdate()
{
$roomtype = $_POST['Reservation']['roomtype'];
$arrival = $_POST['Reservation']['arrival'];
$departure = $_POST['Reservation']['departure'];
list($d, $m, $y) = explode('-', $arrival);
$mk=mktime(0, 0, 0, $m, $d, $y);
$arrival = date ('Y-m-d', $mk);
list($d, $m, $y) = explode('-', $departure);
$mk=mktime(0, 0, 0, $m, $d, $y);
$departure = date ('Y-m-d', $mk);
$data=Room::model()->findAll('roomtypeid=:id',
array(':id'=> $roomtype));
$data=CHtml::listData($data,'id','id');
foreach($data as $value=>$id) {
echo CHtml::tag('option',
array('value'=>$value),CHtml::encode($id),true);
}
}
public function actionCreate()
{
$model=new Reservation;
$model->date= date('d-m-Y');
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['Reservation']))
{
$model->attributes=$_POST['Reservation'];
if (!isset($_POST['noValidate']))
{
$valid=$model->validate();
if($valid)
{
$model->save();
$this->redirect(array('view','id'=>$model->id));
}
}
}
$this->render('create',array(
'model'=>$model,'depositManager'=>$depositManager
));
}
/**
* Updates a particular model.
* If update is successful, the browser will be redirected to the 'view' page.
* @param integer $id the ID of the model to be updated
*/
public function actionUpdate($id)
{
$model=$this->loadModel($id);
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['Reservation']))
{
$model->attributes=$_POST['Reservation'];
if($model->save())
$this->redirect(array('view','id'=>$depot->reservation_id));
}
$this->render('update',array(
'model'=>$model,
));
}