-26 / 8 / 12
Регистрация: 29.03.2016
Сообщений: 1,154
1

Почему дебагер не показывает Роут site/hello

06.09.2017, 22:05. Показов 1409. Ответов 17
Метки yii2 (Все метки)

Author24 — интернет-сервис помощи студентам
не понимаю почему дебагер не показывает Роут site/hello

так как содержимое после входа это страница hello.php



Видео--Длительность 1 минута
https://drive.google.com/open?... kZLeWVleXc
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.09.2017, 22:05
Ответы с готовыми решениями:

Почему установщик игры показывает объём свободного места на диске больший, чем таковой показывает система?
Доброго времени суток. Такой вопрос - решил поставить игру, которую долго ждал. При выборе места...

в чем разница site:site.com/ и site:site.com/*
в чем разница site:site.com/ и site:site.com/* вариант страницы под фильтром отпадает (из форумов...

Почему то один вопрос всего лишь из списка показывает в тесте, почему?
Тест на проверку знаний. Вопросы берутся из .ini файла зашифрованный смещением xor+2. Шифровальщик...

Нет никакой выдачи по запросу site:mysite.ru - почему?
Нет сайта в выдаче вида site:mysite.ru. До 13 февраля у меня стоял следующий robots: ...

17
Особый статус
623 / 221 / 164
Регистрация: 18.11.2015
Сообщений: 1,086
07.09.2017, 00:15 2
Попробуйте нажать F5
0
-26 / 8 / 12
Регистрация: 29.03.2016
Сообщений: 1,154
07.09.2017, 19:33  [ТС] 3
FloppyDisc, tckb j, если обновить то показывает страницу index.php,но я еще залогинен.


также добавляю сюда скрин екшена Логин-на всякий случай.
Миниатюры
Почему дебагер не показывает Роут site/hello   Почему дебагер не показывает Роут site/hello  
0
Особый статус
623 / 221 / 164
Регистрация: 18.11.2015
Сообщений: 1,086
07.09.2017, 22:09 4
Лучший ответ Сообщение было отмечено TVPNERO как решение

Решение

Правильнее будет не рендерить в экшене Логина, а делать редирект куда-нибудь, конечно же он не будет показывать роут site/hello, т.к он о нем тут и речи нет.

Если обновить попадете на главную, поскольку стоит проверка на залогиненность.
1
-26 / 8 / 12
Регистрация: 29.03.2016
Сообщений: 1,154
08.09.2017, 23:07  [ТС] 5
FloppyDisc, я пробовал так редиректить

PHP
1
       return $this->redirect('http://localhost/frame/web/index.php?r=site/hello.php');
но вылезает 404 ошибка -страница не найдена
Миниатюры
Почему дебагер не показывает Роут site/hello  
0
Особый статус
623 / 221 / 164
Регистрация: 18.11.2015
Сообщений: 1,086
09.09.2017, 00:20 6
документацию)
PHP
1
return $this->redirect(['site/hello']);
Добавлено через 1 минуту
На что вам дебагер или вообще строка браузера?
1
-26 / 8 / 12
Регистрация: 29.03.2016
Сообщений: 1,154
09.09.2017, 12:00  [ТС] 7
FloppyDisc, если снова попробовать средиректить то снова показывает 404.хотя такая страница есть
единственное что поменялось- в адресной строке есть site/hello



хочу просто чтоб в строке было то что выводится (вид) но без необходимости менять название екшена
Миниатюры
Почему дебагер не показывает Роут site/hello   Почему дебагер не показывает Роут site/hello  
0
Особый статус
623 / 221 / 164
Регистрация: 18.11.2015
Сообщений: 1,086
09.09.2017, 15:32 8
Эмм, покажитека мне свой actionHello в контроллере SiteController

Цитата Сообщение от TVPNERO Посмотреть сообщение
хочу просто чтоб в строке было то что выводится (вид) но без необходимости менять название екшена
Не совсем понимаю к чему это. Но если так, то просто подгоните actionHello под свои нужды.
0
-26 / 8 / 12
Регистрация: 29.03.2016
Сообщений: 1,154
10.09.2017, 12:07  [ТС] 9
FloppyDisc, А почему редирект не сработал не знаете?
0
Особый статус
623 / 221 / 164
Регистрация: 18.11.2015
Сообщений: 1,086
10.09.2017, 12:14 10
Цитата Сообщение от TVPNERO Посмотреть сообщение
А почему редирект не сработал не знаете?
Я не могу ничего сказать, скиньте основные моменты кода или контроллер полностью
0
-26 / 8 / 12
Регистрация: 29.03.2016
Сообщений: 1,154
10.09.2017, 12:22  [ТС] 11
FloppyDisc,


PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
<?php
 
namespace app\controllers;
 
use app\models\Products;
use Yii;
use yii\filters\AccessControl;
use yii\web\Controller;
use yii\web\Response;
use yii\filters\VerbFilter;
use app\models\LoginForm;
use app\models\ContactForm;
 
class SiteController extends Controller
{
    /**
     * @inheritdoc
     */
    public function behaviors()
    {
        return [
            'access' => [
                'class' => AccessControl::className(),
                'only' => ['logout'],
                'rules' => [
                    [
                        'actions' => ['logout'],
                        'allow' => true,
                        'roles' => ['@'],
                    ],
                ],
            ],
            'verbs' => [
                'class' => VerbFilter::className(),
                'actions' => [
                    'logout' => ['post'],
                ],
            ],
        ];
    }
 
    /**
     * @inheritdoc
     */
    public function actions()
    {
        return [
            'error' => [
                'class' => 'yii\web\ErrorAction',
            ],
            'captcha' => [
                'class' => 'yii\captcha\CaptchaAction',
                'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
            ],
        ];
    }
 
    /**
     * Displays homepage.
     *
     * @return string
     */
    public function actionIndex()
    {
        return $this->render('index');
    }
 
    /**
     * Login action.
     *
     * @return Response|string
     */
    public function actionLogin()
    {
        if (!Yii::$app->user->isGuest) {
           // return $this->goHome();
        }
 
 
 
        $model = new LoginForm();
        if ($model->load(Yii::$app->request->post()) && $model->login()) {
           // return $this->goBack();
           // return $this->render('hello');
 
            return $this->redirect(['site/hello']);
 
 
 
 
        }
 
 
        return $this->render('login', [
           'model' => $model,
        ]);
    }
 
    /**
     * Logout action.
     *
     * @return Response
     */
    public function actionLogout()
    {
        Yii::$app->user->logout();
 
        return $this->goHome();
 
    }
 
    /**
     * Displays contact page.
     *
     * @return Response|string
     */
    public function actionContact()
    {
        $model = new ContactForm();
        if ($model->load(Yii::$app->request->post()) && $model->contact(Yii::$app->params['adminEmail'])) {
            Yii::$app->session->setFlash('contactFormSubmitted');
 
            return $this->refresh();
        }
        return $this->render('contact', [
            'model' => $model,
        ]);
    }
 
    /**
     * Displays about page.
     *
     * @return string
     */
    public function actionAbout()
    {
        return $this->render('about');
    }
 
 
 
 
//    public function actionHello()
//    {
//       // http://localhost/frame/web/index.php?r=site/hello
//
//
//       // return 'Hello World';
//        return $this->render('hello');
//
//
//    }
 
 
 
    public function actionHelloAgain()
    {
 
        //Если два слова в екшене то в Юрле они разделяются дефисом
        // http://localhost/frame/web/index.php?r=site/hello-again
 
 
         return 'Hello againnn !!!';
        // return $this->render('hello');
 
 
    }
 
 
 
    public function actionGoods()
        {
 
 
            $this->view->registerMetaTag(['name'=>'description','contant'=>'Страница всех товаров!']);
 
 
 
        $mybd=Products::find()->all();
 
 
 
        return $this->render('goods',compact('mybd'));
    }
 
 
 
 
}
0
Особый статус
623 / 221 / 164
Регистрация: 18.11.2015
Сообщений: 1,086
10.09.2017, 17:58 12
Т.е у вас не идет редирект после авторизации на экшен Hello?

Добавлено через 4 минуты
В общем вы заблуждаетесь. hello.php - это вьюшка, страница или экшен, как вы выражаетесь. Он служит лишь контентом.

Раскомментируйте actionHello и сразу все увидите.

PHP
1
2
3
4
public function actionHello()
{
  return $this->render('hello');
}

-- Не сработал редирект в Yii2
0
-26 / 8 / 12
Регистрация: 29.03.2016
Сообщений: 1,154
10.09.2017, 20:11  [ТС] 13
FloppyDisc, нет actionHello это пробный метод

мне нужно с екшена actionLogin сделать редирект на Вид hello
0
Особый статус
623 / 221 / 164
Регистрация: 18.11.2015
Сообщений: 1,086
10.09.2017, 22:52 14
Цитата Сообщение от TVPNERO Посмотреть сообщение
мне нужно с екшена actionLogin сделать редирект на Вид hello


я старался

Тыкните мне пальцем где-нибудь в документации как это можно проделать, редирект на вьюху таким образом:
PHP
1
return $this->redirect(['site/hello']);
0
-26 / 8 / 12
Регистрация: 29.03.2016
Сообщений: 1,154
11.09.2017, 22:10  [ТС] 15
FloppyDisc, а каким образом можно?

Добавлено через 33 минуты
FloppyDisc,
PHP
1
 return $this->renderFile
попробовал так-получилось,но решил уже оставить как есть.
0
Особый статус
623 / 221 / 164
Регистрация: 18.11.2015
Сообщений: 1,086
12.09.2017, 12:54 16
Лучший ответ Сообщение было отмечено TVPNERO как решение

Решение

Цитата Сообщение от TVPNERO Посмотреть сообщение
а каким образом можно?
я выше опечатался: "hello.php - это вьюшка, НЕ страница или экшен, как вы выражаетесь."

Вьюшки служат лишь для отображения контента, даже сами являются в какой-то мере контентом. Вы заблуждаетесь в том, что в файл hello.php является экшеном(страницей в URL) или как еще объяснить)

т.е это:
PHP
1
return $this->redirect(['site/hello']);
переправит вас на:
PHP
1
2
3
4
public function actionHello()
{
  return $this->render('hello');
}
в то время как последнее, срендерит вам любимую hello.php
PHP
1
return $this->render('hello');
Я вообще не понимаю зачем все это, где тут логика и зачем фреймворк, для двух страниц? Не вижу нормального разделения логики.

Если вам надо, чтобы вы оставались на том же экшене после авторизации:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public function actionLogin()
    {
        if (!Yii::$app->user->isGuest) {
           return $this->render('hello', []);
        }
 
 
 
        $model = new LoginForm();
        if ($model->load(Yii::$app->request->post()) && $model->login()) {
      
            return $this->refresh();
 
        }
 
        return $this->render('login', [
           'model' => $model,
        ]);
    }
Или если вы хотите чтобы в URL был адресс site/hello, вы должны раскомментить actionHello и сделать редирект после авторизации:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public function actionLogin()
    {
        if (!Yii::$app->user->isGuest) {
           //return $this->goHome();
           // или же на hello
return $this->redirect(['site/hello']);
        }
 
 
 
        $model = new LoginForm();
        if ($model->load(Yii::$app->request->post()) && $model->login()) {
 
            return $this->redirect(['site/hello']); // он редиректит на экшен в контроллере
 
        }
 
        return $this->render('login', [
           'model' => $model,
        ]);
    }
 
а вот и экшен, куда идет редирект и к которому собственно по правилам и "привязана" вьюшка hello.php (но не обязательно конечно же)
public function actionHello()
{
  return $this->render('hello');
}
Добавлено через 6 минут
оставлю тут
https://github.com/yiisoft/yii... amed-views
1
-26 / 8 / 12
Регистрация: 29.03.2016
Сообщений: 1,154
12.09.2017, 22:33  [ТС] 17
PHP
1
return $this->redirect('http://localhost/frame/web/index.php?r=site/hello') ;

так нужно было делать редирект

Проблема решена
0
-26 / 8 / 12
Регистрация: 29.03.2016
Сообщений: 1,154
12.09.2017, 22:35  [ТС] 18
скриншот победы)
Миниатюры
Почему дебагер не показывает Роут site/hello  
0
12.09.2017, 22:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.09.2017, 22:35
Помогаю со студенческими работами здесь

Настройка маршрутизации при соединении двух офисов l2tp site-to-site
Всем доброго! Туплю безбожно. Не могу понять получится ли сделать маршрутизацию. И все ли я...

Пересекающиеся сети туннеля site-to-site между Cisco ASA и TMG
Всем добрый день! Необходимо реализовать следующую схему. Есть главный и удаленный офис, связь...

Не могу создать vpn site to site на cisco asa 5506-x
Ребята нужна помощь в создании vpn на firewall cisco asa 5506-x, в гугле нет ничего обэтом,...

Mod_rewrite (Редирект со слэшем на без слэша) site.ru/ -> site.ru (ПРОБЛЕМА)
Нужен редирект с site.ru/ site.ru/forum/ site.ru site.ru/forum RewriteRule (.+)/$ /$1 -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru