В файле _form.php У меня есть текстовые поля из двух разных моделей, я внес изменения в контроллер create
, чтобы вставить записи для обеих моделей, но проблема в контроллере update
, как я могу загрузить данные второй модели в текстовых окнах второй модели?
будут заполнены только текстовые поля, относящиеся к первой модели.Как загрузить несколько моделей в контроллере обновлений
ответ
Просто визуализируйте обе модели на update
в своем контроллере.
$this->render('update', array(
'model1' => $model1,
'model2' => $model2,
));
и в вашем _form.php
вызова в этом, как полей ввода
<?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)); ?>
надеюсь, что это помогает.
EDIT
Так как вы могли бы быть на той же странице _form.php для create
зрения необходимо создать еще один файл _form.php, скажем _formUpdate.php [копия _form.php] страницы и от вашего update.php вызова делают _formUpdate.php, а затем _form.php и сделанные выше изменения
Я попытался использовать то, что было предложено выше, но данные не заполнены адрес текстовое поле –
сейчас он работает спасибо –
приятно это знать. :) любезно отметим это как ответ, если он действительно работает, спасибо – zzlalani
_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. Как использовать несколько моделей в контроллере CakePHP
- 2. CakePHP: несколько моделей в контроллере Действие: добавьте
- 3. загрузить несколько моделей в Tensorflow
- 4. загрузить/удалить несколько моделей в PhiloGL - WebGL
- 5. Как использовать несколько моделей в контроллере/view mvc?
- 6. Несколько моделей в одном контроллере в ASP.NET MVC3
- 7. DBSet как несколько обновлений?
- 8. Несколько моделей в одном контроллере против многих частичных просмотров
- 9. несколько обновлений в таблице
- 10. Несколько обновлений в MySQL
- 11. Ember.js: Итерация через несколько моделей, установленных на контроллере
- 12. Контроллер, использующий несколько моделей?
- 13. Как сделать несколько обновлений в django?
- 14. Как загрузить несколько моделей последовательно по маршруту Ember JS
- 15. Mongoose как сделать несколько обновлений
- 16. Список моделей для списка ViewModel в контроллере
- 17. Как применяются несколько обновлений приложений?
- 18. Как опубликовать список моделей на контроллере?
- 19. Невозможно загрузить модель в контроллере
- 20. Как загрузить данные различных моделей
- 21. Доступ к атрибутам связанных моделей в контроллере
- 22. Несколько моделей
- 23. Несколько моделей в Myrrix
- 24. Нокаут несколько моделей моделей - undefined
- 25. Несколько обновлений в MySQL GROUP_CONCAT()
- 26. Несколько моделей в MVC
- 27. Несколько моделей в разработке
- 28. Sybase Несколько обновлений
- 29. рельсы ассоциации моделей, зарегистрированные в контроллере
- 30. несколько обновлений с jpa
И что вы пытаетесь сделать, решить эту проблему? Пожалуйста, покажите свой код. И может быть это поможет: http://www.yiiframework.com/wiki/291/update-two-models-with-one-view/ – Sergey