在_form.php文件中我有兩個不同型號的文本框,我對create
控制器進行了更改,以便爲兩個型號插入記錄,但問題出在update
控制器中,我如何加載第二個模型的文本框中的第二個模型的數據?
只有與第一個模型相關的文本框纔會被填充。如何在更新控制器中加載多個模型
1
A
回答
1
只需在控制器中將兩個模型都渲染到update
視圖。
$this->render('update', array(
'model1' => $model1,
'model2' => $model2,
));
,並在您_form.php
通話textboxs這樣
<?php echo $form->labelEx($model1, ‘data1’); ?>
<?php echo $form->textField($model1, ‘data1’, array(‘size’ => 60, ‘maxlength’ => 250)); ?>
<?php echo $form->labelEx($model2, ‘data2’); ?>
<?php echo $form->textField($model2, ‘data2’, array(‘size’ => 60, ‘maxlength’ => 250)); ?>
希望這會有所幫助。
編輯
因爲你可能會使用相同的_form.php這個頁面create
視圖,您需要創建另一個_form.php這個文件,說_formUpdate.php頁[_form.php這個副本]和從update.php呼叫呈現_formUpdate.php而不是_form.php這個和上面所做的更改
0
_form
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'tabel1-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,'name'); ?>
<?php echo $form->textField($model,'name',array('size'=>44,'maxlength'=>44)); ?>
<?php echo $form->error($model,'name'); ?>
</div>
<div class="row">
<?php echo $form->labelEx(Table2::model(),'address'); ?>
<?php echo $form->textField(Table2::model(),'address',array('size'=>44,'maxlength'=>44)); ?>
<?php echo $form->error(Table2::model(),'address'); ?>
</div>
<div class="row buttons">
<?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?>
</div>
<?php $this->endWidget(); ?>
</div><!-- form -->
update.php
<?php
$this->breadcrumbs=array(
'Tabel1s'=>array('index'),
$model->name=>array('view','id'=>$model->id),
'Update',
);
$this->menu=array(
array('label'=>'List Tabel1', 'url'=>array('index')),
array('label'=>'Create Tabel1', 'url'=>array('create')),
array('label'=>'View Tabel1', 'url'=>array('view', 'id'=>$model->id)),
array('label'=>'Manage Tabel1', 'url'=>array('admin')),
);
?>
<h1>Update Tabel1 <?php echo $model->id; ?></h1>
<?php echo $this->renderPartial('_formUpdate', array('model'=>$model,'model2'=>$model2)); ?>
Tabel1Controller.php
public function actionCreate()
{
$model=new Tabel1;
$model2=new Table2;
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['Tabel1'])&&isset($_POST['Table2']))
{
$model->attributes=$_POST['Tabel1'];
$model2->attributes=$_POST['Table2'];
if($model->save()&&$model2->save())
$this->redirect(array('view','id'=>$model->id));
}
$this->render('create',array(
'model'=>$model,
'model2'=>$model2
));
}
/**
* 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);
$model2=$this->loadModel2($id);
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
//echo $model2->address;
if(isset($_POST['Tabel1'])&&isset($_POST['Table2']))
{
$model->attributes=$_POST['Tabel1'];
$model2->attributes=$_POST['Table2'];
if($model->save()&&$model2->save())
$this->redirect(array('view','id'=>$model->id));
}
$this->render('update',array(
'model'=>$model,
'model2'=>$model2
));
}
public function loadModel2($id)
{
$model=Table2::model()->findByPk(1);
if($model===null)
throw new CHttpException(404,'The requested page does not exist.');
return $model;
}
相關問題
- 1. 如何在同一控制器加載多個模型codigniter
- 2. 在控制器中加載多個模型
- 3. CakePHP:在控制器中加載模型
- 4. 如何在軌道控制檯中重新加載模型?
- 5. Ruby on Rails - 從一個控制器更新多個模型
- 6. 如何在kohana3.3.1的控制器中加載模型?
- 7. 如何在Sencha Touch中無控制器模型更新視圖?
- 8. 更新模態與控制器模型
- 9. 從一個控制器動作多次更新模型
- 10. 如何將模型加載到MVC中的控制器中
- 11. 如何使用CodeIgniter在同一個控制器中加載兩個模型?
- 12. Laravel控制器中的多個模型
- 13. 如何在codeigniter 3.1.4中使用多個控制器和模型?
- 14. 如何在CakePHP控制器中使用多個模型
- 15. rails belongs_to多個模型如何在控制器中創建
- 16. 如何在控制器/視圖mvc中使用多個模型?
- 17. Umbraco不更新模型和控制器
- 18. 如何從控制器更新集合數組中的模型
- 19. 我應該如何從emberjs中的子控制器重新加載模型?
- 20. 單個模型的多個控制器
- 21. 雙向KVO:控制器更新模型,它通知控制器
- 22. laravel 5在每個控制器上加載模型
- 23. 在一個控制器中更新一個模型,該模型位於另一個控制器中,並由另一個控制器使用
- 24. 如何在模型中運行查詢並在控制器中加載?
- 25. 如何在Child控制器類中加載模型並在父類中使用?
- 26. 重新加載控制器
- 27. 如何加載管理控制器目錄模型
- 28. Rails:update_attribute調用多個控制器/模型?
- 29. Rails一個模型 - 許多控制器
- 30. 控制器使用多個模型?
那你嘗試做解決這個問題呢?請顯示你的代碼。可能會有所幫助:http://www.yiiframework.com/wiki/291/update-two-models-with-one-view/ – Sergey