
Сергей
22.09.2016
13:50:58
по факту нужно подменить экшн со всей его логикой

Anatoly
22.09.2016
13:51:53
А редирект на страницу выбора города, а потом обратно не рассматриваете?

Сергей
22.09.2016
13:52:09
нет
плохо для сео

Google

SiZE
22.09.2016
13:53:01
http://stackoverflow.com/questions/28251890/forward-data-from-one-controller-action-to-other-in-yii2
тогда возможно это лучше в init контроллера делать

Anatoly
22.09.2016
13:53:30
плохо для сео
Ну, когда к вам гугл придёт и увидит сию страницу лучше не станет точно

SiZE
22.09.2016
13:53:39

Anatoly
22.09.2016
13:54:28
Но если бы мне приспичило сделать именно так, я бы подумал о своём Behavior
Наследуйтесь от ActionFilte и получите в качестве бонуса возможность отключать его для некоторых экшенов

Сергей
22.09.2016
13:55:35
хорошо попробуем
спасибо

Anatoly
22.09.2016
13:57:17
робота можно залочить
Я не специалист в SEO, конечно, но, насколько я помню, поисковые движки не рекомендуют подменять контент основываясь на User-Agent робота, т.к. за это можно получить по шапке. Могу быть не прав. Я к SEO со скептицизмом отношусь вообще
Обращайтесь

Виталий
22.09.2016
14:10:26
Вот поэтому и не должно быть 302 редирект и отдельный URL

Anatoly
22.09.2016
14:11:42
Так вообще ИМХО принудительный выбор города не должен происходить

Google

Anatoly
22.09.2016
14:13:00
Но требования есть требования. Я бы просто default выбирал в случае неопределённости
http://dn.imagy.me/201609/22/fe0156059a301550593e298ce4a1d077.png

SiZE
22.09.2016
14:15:26

Anatoly
22.09.2016
14:16:06
Да я без претензий. Прекрасно понимаю какие ТЗ бывают)

Виталий
22.09.2016
14:18:05
А если мы однозначно знаем, какой у тебя город, почему за клиента не отработать?

Anatoly
22.09.2016
14:18:41
Он может неверно определиться

Виталий
22.09.2016
14:18:43
Естественно возможность поменять остается

Anatoly
22.09.2016
14:20:01
У мобильного интернета раньше такое часто наблюдалось. Пул IP заимствовали у других регионов

Виталий
22.09.2016
14:20:11
Спасибо за идею с actionfilter, почитаем

Anatoly
22.09.2016
14:20:36
Ну, там тоже костыть придётся в beforeAction вставить
Но такой костыль хотя бы проще контроллировать

Виталий
22.09.2016
14:23:30
У мобильного интернет и сейчас такая же проблема
Сдается мне, что нужно работать с мобилками по датчикам устройств

SiZE
22.09.2016
15:32:16

Сергей
23.09.2016
06:51:26
настроил я actionfilter, но вьюху подменить не могу
могу лишь отменить экшн

Anatoly
23.09.2016
06:52:24
Ну, в этом и суть - ты рендеришь нужную тебе вьюху и отменяешь экшен
Про этот костыль я и говорил

Сергей
23.09.2016
06:52:50
отрендерить то её в какой момент?

Anatoly
23.09.2016
06:53:07
В beforeAction

Google

Сергей
23.09.2016
06:53:22
там только можно вернуть true или false
либо эксепшн вызвать

Anatoly
23.09.2016
06:54:52
Yii::$app->response->content = $this->context->render('viewFile', $data);
В Yii можно делать что угодно и где угодно

Сергей
23.09.2016
06:59:13
получилось
только actionFilter мне и не понадобился
сделал в beforeAction базового контроллера

Anatoly
23.09.2016
07:02:29
Ну ёпт
Я не хочу читать нотации по качеству кода и т.д., просто я предчувствую боль, которую тебе придётся испытать с таким решением)

Сергей
23.09.2016
07:06:40
если это будет востребовано, вынесу в фильтр

Anatoly
23.09.2016
07:06:59
И это будет правильно ?
Не давай костылям попадать в ядро архитектуры

Сергей
23.09.2016
07:10:33
хорошо)
один вопрос)
почему скрин domru.ru?\

Anatoly
23.09.2016
07:12:36
Ну там вроде как дружелюбно выбор города сделан

Сергей
23.09.2016
07:16:10
круто, посмотрю)

M
25.09.2016
21:31:07
Друтути
курлык-курлык
Вопрос немного не по теме фреймворка, но всё же, если есть те, кто работает/работал с инет магазинами(не в техническом плане, а в общем весь бизнес-процесс), напишите пожалуйста в ЛС.

Google

Виталий
26.09.2016
12:27:11
путь xxx/bundles/tilefoldcontent роутит в actionIndex
Есть rules у UrlManager '<module:\w+>/<controller:\w+>/<action:\w+>' => '<module>/<controller>/<action>',
'xxx/bundles/<alias:[\w\-]+>' => 'xxx/bundles/index', В модуле создан BundlesController (actionTilefoldcontent(), actionIndex($alias = null))
Как заставить UrlManager роутить в приоритетный action?

SiZE
26.09.2016
12:41:42
последнее правило перенаправляет
можно добавить правило выше него

Виталий
26.09.2016
12:44:19
Почему правило выше не выполняет эту функцию?

Anatoly
26.09.2016
12:50:24
Правила считываются по порядку сверху вниз. Представленный URL соответствует первому правилу:
'<module:\w+>/<controller:\w+>/<action:\w+> => <module>/<controller>/<action>'
Поэтому чтобы правило xxx/bundles/<alias:[\w\-]+>' => 'xxx/bundles/index заработало, нужно написать его выше

Сергей
26.09.2016
12:55:15
в том то и дело что срабатывает последнее правило
а должно первое

Anatoly
26.09.2016
13:01:14
Сложно сказать. Надо бы посмотреть полный список правил

Pavel
29.09.2016
00:29:43
Помогите пожалуйста. Почему перед return выводится все правильно, а когда саму функцию вызываешь то ничего вообще не возвращается http://prntscr.com/cnkzok

Yokai
29.09.2016
01:23:23

Pavel
29.09.2016
01:24:27
Да, я уже понял свою ошибку

Anatoly
29.09.2016
04:46:34

Ilya
29.09.2016
07:02:30
Наконец-то я нашел, группу по yii2
))

Pavel
29.09.2016
07:03:23
грац

Ilya
29.09.2016
07:04:09
Главный вопрос на повестке дня:
почему yii2 считает что если зависимость в active record называется user_example, то при подгрузке этой зависимости в вывод данных её нужно называть так же, как и название функции, которое её добавляет, т.е. userExample
При том, что запись user_example с индексом этого элемента остается не тронутой

Google

Ilya
29.09.2016
07:04:53
И постоянно приходится подчищать такие записи, если используешь в названии столбца нижнее подчеркивание

SiZE
29.09.2016
07:05:46
ничонепонял

Ilya
29.09.2016
07:06:47
Т.е. после использования with('userExample') не прикольно видеть в элементе следующее:
[
'user_example' => '1',
'userExample => ['some','some']
]

Anatoly
29.09.2016
07:07:12
Речь идёт о relations?

Ilya
29.09.2016
07:07:15
Ага

Anatoly
29.09.2016
07:07:44
Давайте код, по словам не понятна суть проблемы

Ilya
29.09.2016
07:07:44
Вообще в идеале было бы, чтобы даже в вызове зависимости нужно было использовать реальное название столбца, а не его интерпретацию в названии функции
Я привел пример кода выше

Anatoly
29.09.2016
07:09:59
На каком языке он написан?

Ilya
29.09.2016
07:10:35
Т.е. я использую
User::find()->with('relatedExample')->one()
и получаю
[
'index' => 1,
'related_example' => 12,
'relatedExample' => ...
]
А ожидается, хотя бы
[
'index' => 1,
'related_example' => ...
]
без лишнего мусора, который оставляет фреймворк
непонятно зачем

Anatoly
29.09.2016
07:11:46
И вышесказанного я понял, что вас не устраивает как Yii2 работает с relations.
Фреймворк загружает модель с дополнительным отношениями, как вы его и попросили

SiZE
29.09.2016
07:11:58
обычно используется так:
'user' (id, profile_id)
public function getProfile();
User::find()->with('profile')->one();

Anatoly
29.09.2016
07:12:00
И мусора здесь никакого нет