Как использовать представление одной модели в представлении другой модели?

Здравствуйте! Как использовать представление одной модели в представлении другой модели?
Допустим, у меня есть модель Project, а также сгенерированный CRUD. Также есть модель Offer (с CRUD), и у него есть поля project_id и user_id и т.д. В представлении view модели Project выводится вся информация, а в конце страницы должна быть форма (_form.php) модели Offer. Я делал это при помощи следующего кода. Но почему-то вместо того, чтобы показать пустые поля, я получаю ошибку
Call to a member function isAttributeRequired() on null
.
<?php
        if ($model->task_status == "Открыт" && !Yii::$app->getUser()->getIsGuest() && $model->customer_id != Yii::$app->getUser()->getId()) {
            $this->render('@app/views/offer/create.php', ['offer' => new \app\models\Offer()]);
        }
    ?>

Я предполагаю, что это из-за обязательных атрибутов в таблице БД Offer. Тогда я решил поменять на другой код. И вроде бы получилось, но правильно ли...
<?php
        if ($model->task_status == "Открыт" && !Yii::$app->getUser()->getIsGuest() && $model->customer_id != Yii::$app->getUser()->getId()) {
            $offer = new \app\models\Offer();
            $offer->id_project = $model->id;
            $offer->performer_id = Yii::$app->getUser()->getId();
            $offer->date = date('Y-m-d');

            echo Yii::$app->view->renderFile('@app/views/offer/_form.php', ['offer'=>$offer]);
        }
    ?>
  • Вопрос задан
  • 48 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы