Как правильно передать два объекта одной формы yii2?

Чтобы передать два объекта одной формы в Yii2, вам потребуется использовать модель формы и объединить в ней две модели данных.

1. Создайте новый класс для модели формы (например, MyForm), который будет наследоваться от класса yiibaseModel:

namespace appmodels;

use yiibaseModel;

class MyForm extends Model
{
    public $model1;
    public $model2;

    public function rules()
    {
        return [
            [['model1', 'model2'], 'required'],
        ];
    }
}

2. В контроллере, где вы обрабатываете форму, создайте экземпляр модели формы и двух моделей данных, которые вы хотите передать:

use appmodelsMyForm;
use appmodelsModel1;
use appmodelsModel2;

public function actionYourAction()
{
    $formModel = new MyForm();
    $model1 = new Model1();
    $model2 = new Model2();

    // Обработка отправки формы
    if ($formModel->load(Yii::$app->request->post()) && $formModel->validate()) {
        // Делаем что-то с моделями данных
        // ...
    }

    return $this->render('your-view', [
        'formModel' => $formModel,
        'model1' => $model1,
        'model2' => $model2,
    ]);
}

3. В представлении (виде) вашей страницы создайте форму, используя ActiveForm, и добавьте поля для двух моделей данных:

use yiiwidgetsActiveForm;
use yiihelpersHtml;

<?php $form = ActiveForm::begin(); ?>

<?= $form->field($formModel, 'model1')->textInput() ?>
<?= $form->field($formModel, 'model2')->textInput() ?>

<?= Html::submitButton('Отправить', ['class' => 'btn btn-primary']) ?>

<?php ActiveForm::end(); ?>

Теперь вы можете передавать два объекта одной формы в Yii2, и при отправке формы значения полей будут автоматически привязаны к соответствующим моделям данных. В контроллере вы можете получить доступ к этим объектам через $formModel->model1 и $formModel->model2.