Почему не cрабатывает функция[Решено]

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
svil
Сообщения: 563
Зарегистрирован: 2018.02.12, 22:41

Почему не cрабатывает функция[Решено]

Сообщение svil »

Не срабатывает функция переадресации, но напрямую прописанная переадресация срабатывает.
Когда напрямую в экшене пишу

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

 public function actionCreate()
    {

        if (Yii::$app->user->isGuest)
        {
         
            return $this->redirect(['./../../']); //ЗДЕСЬ
           
        }

        $model = new Companies();

        if ($model->load(Yii::$app->request->post()) && $model->save()) {
     
            Event::on(User::class, User::EVENT_ACT_USER, [$this, 'getEvent']);
            return $this->redirect(['view', 'id' => $model->id]);
        }

        return $this->render('create', [
            'model' => $model,
        ]);
    }
происходит редирект
Когда функцию использую

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

public function checkAccess(){
        if (Yii::$app->user->isGuest)
        {
          
             return $this->redirect(['./../../']);
      
        }

    }
    public function actionCreate()
    {

      $this->checkAccess(); //ЗДЕСЬ
     
        $model = new Companies();

        if ($model->load(Yii::$app->request->post()) && $model->save()) {
     
            Event::on(User::class, User::EVENT_ACT_USER, [$this, 'getEvent']);
            return $this->redirect(['view', 'id' => $model->id]);
        }

        return $this->render('create', [
            'model' => $model,
        ]);
    }
    
редиректа нет и вылетает ошибка

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

Trying to get property of non-object
1. in /Users/svetlanailina/Sites/boxic/backend/views/layouts/cp.php at line 48
39404142434445464748495051525354555657        'brandUrl' => Yii::$app->homeUrl,
        'options' => [
            'class' => 'navbar-inverse navbar-fixed-top',
        ],
    ]);
    $menuItems[] = ['label' => 'Главная', 'url' => ['/../../']];
    $menuItems[] = '<li>'
        . Html::beginForm(['/site/logout'], 'post')
        . Html::submitButton(
            'Выход (' . Yii::$app->user->identity->surname . ')',  //ЗДЕСЬ
            ['class' => 'btn btn-link logout']
        )
        . Html::endForm()
        . '</li>';
    echo Nav::widget([
        'options' => ['cl
Последний раз редактировалось svil 2019.06.29, 20:10, всего редактировалось 1 раз.
Аватара пользователя
svil
Сообщения: 563
Зарегистрирован: 2018.02.12, 22:41

Re: Почему не cрабатывает функция [Решено]

Сообщение svil »

Сделала так и заработало

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

<div class="wrap">
    <?php
    if (Yii::$app->user->isGuest) {
        //    $menuItems[] = ['label' => 'Регистрация', 'url' => ['/site/signup']];
        //   $menuItems[] = ['label' => 'Войти', 'url' => ['/site/login']];
    } else {
        NavBar::begin([

            'brandLabel' => Html::img('@web/images/mainLOGO8.png', ['alt' => Yii::$app->name]),
            'brandUrl' => Yii::$app->homeUrl,
            'options' => [
                'class' => 'navbar-inverse navbar-fixed-top',
            ],
        ]);
	$menuItems[] = ['label' => 'Главная', 'url' => ['/../../']];
        $menuItems[] = '<li>'
            . Html::beginForm(['/site/logout'], 'post')
            . Html::submitButton(
                'Выход (' . Yii::$app->user->identity->surname . ')',
                ['class' => 'btn btn-link logout']
            )
            . Html::endForm()
            . '</li>';

        echo Nav::widget([
            'options' => ['class' => 'navbar-nav navbar-right'],
            'items' => $menuItems,
        ]);
        NavBar::end();
    }
    ?>
Ответить