Не выводятся flash-сообщения

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Kven
Сообщения: 97
Зарегистрирован: 2016.10.20, 23:03

Не выводятся flash-сообщения

Сообщение Kven » 2018.10.19, 17:15

Всем здравствуйте! Извиняюсь за банальный вопрос, но подскажите, почему после успешной отправки формы (письмо на почту приходит) не выводится flash-сообщение?

Код: Выделить всё

public function actionIndex()
{
    $session = Yii::$app->session;
    $session->open();
    $model = new Requests();

    if($model->load(Yii::$app->request->post()) && $model->validate()){
        if($model->save() && (($model->email)==true) && (($model->email == Yii::$app->params['adminEmail']))==false){
            $result =  Yii::$app->mailer->compose()
                ->setFrom([Yii::$app->params['adminEmail'] => '123'])
                ->setTo($model->email)
                ->setSubject('123')
                ->setHtmlBody('Текст')
                ->send();
            Yii::$app->session->setFlash('success', 'Спасибо за Ваше обращение!');
            $this->refresh();
        }else{
            $model->contact(\Yii::$app->params['adminEmail']);
        }
        unlink($filePath);
    }
    return $this->render('index', compact('session', 'model', 'catalogue'));
}
В виде у меня прописано:

Код: Выделить всё

<?php if( Yii::$app->session->hasFlash('success') ): ?>
    <div class="col-md-6 col-xs-12 col-sm-12 col-md-push-3 alert alert-success alert-dismissible text-center" role="alert">
        <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <?php echo Yii::$app->session->getFlash('success'); ?>
    </div>
<?php endif;?>

slo_nik
Сообщения: 280
Зарегистрирован: 2013.10.07, 19:08

Re: Не выводятся flash-сообщения

Сообщение slo_nik » 2018.10.19, 18:52

Добрый вечер.
Накрутили Вы что-то слишком.

Код: Выделить всё

if($model->save() && (($model->email)==true) && (($model->email == Yii::$app->params['adminEmail']))==false){
Получается следующее:

Код: Выделить всё

if(вот_всё_это равно false){код выполнить}
Но у Вас не равно false и поэтому flash сообщение не формируется и не выводится.
Если сделать вот так, то должно выводится

Код: Выделить всё

if($model->save() && (($model->email)==true) && (($model->email == Yii::$app->params['adminEmail'])) != false){
Вот как-то так, объяснил как мог)))

Kven
Сообщения: 97
Зарегистрирован: 2016.10.20, 23:03

Re: Не выводятся flash-сообщения

Сообщение Kven » 2018.10.19, 20:29

Спасибо, применил я текущее исправление, но к сожалению флеш-сообщения все равно не выводятся.

Аватара пользователя
carono
Сообщения: 52
Зарегистрирован: 2018.04.28, 11:05

Re: Не выводятся flash-сообщения

Сообщение carono » 2018.10.19, 20:50

сделай return $this->refresh()

Kven
Сообщения: 97
Зарегистрирован: 2016.10.20, 23:03

Re: Не выводятся flash-сообщения

Сообщение Kven » 2018.10.19, 21:01

А в каком месте? У меня же refresh выполняется перед else.

Аватара пользователя
carono
Сообщения: 52
Зарегистрирован: 2018.04.28, 11:05

Re: Не выводятся flash-сообщения

Сообщение carono » 2018.10.19, 21:16

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

Kven
Сообщения: 97
Зарегистрирован: 2016.10.20, 23:03

Re: Не выводятся flash-сообщения

Сообщение Kven » 2018.10.19, 21:43

Спасибо большое!

Ответить