Добрый день! Не могу обработать два объекта одной формы.
Смысл такой. У меня есть модель, она не тянет ничего с базы, это просто форма с произвольными полями, в моем случае просто две даты. Но эту форму я буду использовать одновременно на нескольких отчетах. Поэтому я создаю два объекта одной и той же формы в контроллере.
Вот модель:
<?php
namespace app\models;
use yii\base\Model;
class ReportsForm extends Model
{
public $date_one;
public $date_two;
public function attributeLabels()
{
return [
'date_one' => 'Дата начала',
'date_two' => 'Дата окончания',
];
}
public function rules(){
return [
[['date_one','date_two'],'required'],
[['date_one','date_two'],'safe'],
];
}
}
Вот контроллер:
public function actionEpicrisis(){
$epicrisis = new ReportsForm(); // Форма для Отчета1
$analyzes = new ReportsForm(); // Форма для Отчета2
return $this->render('epicrisis',compact('epicrisis','analyzes'));
} // Обработка отчетов
А вот экшен
<h2 class="animated bounceInRight">ОТЧЕТЫ</h2>
<h2>ВЫБЕРИТЕ ПАРАМЕТРЫ</h2>
<hr>
<?php $form = ActiveForm::begin([
'id'=>'report1'
])?>
<?= $form->field($epicrisis,'date_one')->widget(DatePicker::class)?>
<?= $form->field($epicrisis,'date_two')->widget(DatePicker::class)?>
<?= Html::submitButton('Применить',['class' => 'btn btn-primary'])?>
<?php $form = ActiveForm::end()?>
<hr>
<?php $form1 = ActiveForm::begin([
'id'=>'report2'
])?>
<?= $form1->field($analyzes,'date_one')->widget(DatePicker::class)?>
<?= $form1->field($analyzes,'date_two')->widget(DatePicker::class)?>
<?= Html::submitButton('Применить',['class' => 'btn btn-primary'])?>
<?php $form1 = ActiveForm::end()?>
<hr>
Далее эти формы я передаю в экшен, но вторая форма не работает (она идет ниже по коду). То есть первая работает, а вторая нет. Если я комментирую первую форму (Это все экшене), то вторая работает. В чем проблема не пойму, помогите разобраться.
У меня там на двух формах простой виджет даты стоит, так вот на второй форме он не отрабатывает, если насильно туда данные вбить и нажать Применить, то отрабатывает первая форма, хотя данные отправлял со второй