Всем привет, столкнулся с такой проблемой. Делаю функцию обратного звонка У

меня есть модель (Callback), контроллер(CallbackController) и вью(frontend/view/callback/index.php).
Контроллер:

public function actionIndex()
{
$model = new Callback();

if ($this->request->isPost) {
if ($model->load($this->request->post()) && $model->save()) {
Yii::$app->session->setFlash('success', 'Сообщение успешно отправлено!');
return $this->redirect(Yii::$app->request->referrer);
}
}
return $this->render('index', compact('model'));
}

Пытаюсь в футер layout вывести (подключить) этот callback/inde.php

<?php echo $this->renderA('@frontend/views/callback/index.php'); ?>

callback/index.php
<?php \yii\widgets\Pjax::begin(); ?>
<?php $form = \yii\bootstrap\ActiveForm::begin(['id' => 'callback-form-index', 'action' => ['callback/index'],]); ?>
<div class="modal-body">
<?= $form->field($model, 'name')->textInput(['maxlength' => true, 'placeholder' => 'Ваше имя']) ?>
<?= $form->field($model, 'phone')->textInput() ?>
<?= $form->field($model, 'reCaptcha')->widget(
\himiklab\yii2\recaptcha\ReCaptcha2::class,
[
'siteKey' => 'мой ключ, // unnecessary is reCaptcha component was set up
]
) ?>
</div>
<div class="modal-footer">
<?= \yii\helpers\Html::submitButton('Заказать обратный звонок', ['class' => 'callback_btn', 'name' => 'callback-button', 'id' => 'refreshButton1', 'onclick' => "yaCounter51997982.reachGoal('buttonCallback'); return true;"]) ?>
</div>
<?php \yii\bootstrap\ActiveForm::end(); ?>
<?php \yii\widgets\Pjax::end(); ?>


Но у меня вылетает ошибка:

Call to a member function isAttributeRequired() on null

Ругается на поля которые пользователь должен заполнять.
Подскажите пожалуйста, как это можно побороть.

4 ответов

16 просмотров

Когда в футере вызываете рендер файла - туда нужно передать соответствующие переменные В данном случае у вас не передается $model, от чего функция формирования полей вызывается на $model = null и выбрасывается исключение Call to a member function isAttributeRequired() on null

Максим Михалыч- Автор вопроса
Yaroslav
Когда в футере вызываете рендер файла - туда нужно...

Я пробовал вот так: <?php echo $this->render('@frontend/views/callback/index.php', ['model' => $model,]); ?> Результат один и тот же. Я просто чего-то не понимаю, как нужно сделать

Максим Михалыч- Автор вопроса

Пусто

Максим Михалыч
Пусто

Ну вот вы ничего не передаете и пытаетесь сформировать на этом ничего форму)

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

Обсуждают сегодня

Кто хочет поиграться в легкий взлом специально уязвимого приложения? :) Ваше задани - вы студент группы 416 - оценку в 100 баллов и найти 10 флагов (текстовых) формата Step0...
Andrii Kurdiumov
4
Привет Хочу сделать аналог iCloud’а для своих проектов, чтобы пользовательская информация хранилась в облаке, была доступна во всех сервисах, её можно было подсасывать везде)...
Виталий
9
код Event::listen('cms.page.display', function (&$content, $slug, $page, $html) { if (is_object($content)) { dump($content); } else { dump($s...
Point 111
3
<div class="report-widget"> <h3 style="margin-bottom:10px;"> <?= e(__($this->property('title'))) ?> </h3> <button type="submit" data-request-flash ...
Vladimir 
2
Точно проблема в твиге?
Vladimir 
5
Ребят, а почему вызов add-tag может возвращать не нулевой код даже если операция прошла успешно? Дело в том, что образ корректно помечается, но ветка заходит в "then"... gclou...
Philipp Bondarev
2
Ребята привет. Telegraf 3.38 актуален ещё или лучше обновиться?
𝙊𝑙ẽ𝘨 // Rabbit Hole
2
<div class="report-widget"> <h3 style="margin-bottom:10px;"> <?= e(__($this->property('title'))) ?> </h3> <button type="submit" data-control="popup...
Point 111
1
@LeMaX10 а ты же делаешь в своем боте капчу на вход в чат? или так же на первое сообщение?
Sergey
4
Всем привет. Не понимаю, в чём тут шутка юмора. Убирается только разрешение на send_messages. А send_media_messages остаётся. Как сделать, чтобы оба убирались? await b...
Alexander
2
Карта сайта