Проблема с ссылками у GridView
Проблема с ссылками у GridView
Возник вопрос, который у меня решен, но костылями на js.
Есть контроллер (любой) в котором вызывается модуль, в котором есть контроллер, в котором есть экшн к которому мы стучимся ajax'ом, в экшене идет редирект на другой экшн (actionShowDataPos) которому задано правило rules (show-data-post), в котором мы получаем данные и отправляем их в некоторую вьюху.
Изначально, при загрузке страницы в GridView у ссылок адрес такого вида:
site.ru/my-amazing-action/?blablabla=blablabla
Проблема - в GridView после ajax запроса и обновления GridView через Pjax, все ссылки имеют вид site.ru/show-data-post/?blablabla=blablabla
Т.е. заместо экшена контроллера, в котором вызывается модуль, к ним добавляется имя экшена контроллера самого модуля. Я разумеется на js написал подмену этой части ссылки на верную, но костыль.
Как пофиксить эту неприятность?
Есть контроллер (любой) в котором вызывается модуль, в котором есть контроллер, в котором есть экшн к которому мы стучимся ajax'ом, в экшене идет редирект на другой экшн (actionShowDataPos) которому задано правило rules (show-data-post), в котором мы получаем данные и отправляем их в некоторую вьюху.
Изначально, при загрузке страницы в GridView у ссылок адрес такого вида:
site.ru/my-amazing-action/?blablabla=blablabla
Проблема - в GridView после ajax запроса и обновления GridView через Pjax, все ссылки имеют вид site.ru/show-data-post/?blablabla=blablabla
Т.е. заместо экшена контроллера, в котором вызывается модуль, к ним добавляется имя экшена контроллера самого модуля. Я разумеется на js написал подмену этой части ссылки на верную, но костыль.
Как пофиксить эту неприятность?
- Neuromance
- Сообщения: 716
- Зарегистрирован: 2011.09.06, 13:04
Re: Проблема с ссылками у GridView
'enablePushState' => false
Re: Проблема с ссылками у GridView
пушстейт тут вообще не пойдет, он влияет на адресную строку, а не на url'ы ссылок самого GridView (ссылки сортировки и пагинации).
при загрузке страницы правильные ссылки:
/index.php/site/about?sort=caption
после ajax запроса и обновления gridview:
/index.php/SimpleFilter/filter/show-data-post?sort=caption
Вот мой репозиторий:
https://github.com/sanex3339/Yii2-Simple-Filter
Вот контроллер модуля:
https://github.com/sanex3339/Yii2-Simpl ... roller.php
при загрузке страницы правильные ссылки:
/index.php/site/about?sort=caption
после ajax запроса и обновления gridview:
/index.php/SimpleFilter/filter/show-data-post?sort=caption
Вот мой репозиторий:
https://github.com/sanex3339/Yii2-Simple-Filter
Вот контроллер модуля:
https://github.com/sanex3339/Yii2-Simpl ... roller.php
Re: Проблема с ссылками у GridView
может быть data-pjax=0 поможет?
Re: Проблема с ссылками у GridView
Дело вообще не в настройках pjax-а, насколько я понимаю. Дело в gridview, который вызывается в вьюшке, которая renderPartial'ится в экшене контроллера модуля, который вызывается где-либо.
Т.е. при загрузке страницы модуль вызывается из какого-либо контроллера, соответственно, в модуле при рендере вьюшки с GridView у ссылок прописан контроллер и экшен, из которого модуль вызывался.
При ajax запросе, запрос идет напрямую в экшен контроллера модуля и поэтому у ссылок в урле прописан контроллер и экшен самого модуля, а не контроллер и экшен, из которых этот модуль вызывался.
Вопрос в том - как это пофиксить без плясок с подменой этой части ссылки на js-е?
Потому что, во-первых - велосипед, а во вторых, я задолбался пока писал решение, которое вроде бы работает корректно при различных настройках Yii2
Т.е. при загрузке страницы модуль вызывается из какого-либо контроллера, соответственно, в модуле при рендере вьюшки с GridView у ссылок прописан контроллер и экшен, из которого модуль вызывался.
При ajax запросе, запрос идет напрямую в экшен контроллера модуля и поэтому у ссылок в урле прописан контроллер и экшен самого модуля, а не контроллер и экшен, из которых этот модуль вызывался.
Вопрос в том - как это пофиксить без плясок с подменой этой части ссылки на js-е?
Потому что, во-первых - велосипед, а во вторых, я задолбался пока писал решение, которое вроде бы работает корректно при различных настройках Yii2
Re: Проблема с ссылками у GridView
up, проблему так и не решил
Re: Проблема с ссылками у GridView
Код: Выделить всё
$dataProvider->pagination->route = '/site/about';
$dataProvider->sort->route = '/site/about';
Код: Выделить всё
[
'class' => 'yii\grid\ActionColumn',
'controller' => '/site',
],
Re: Проблема с ссылками у GridView
А вот это куда пихать? правда и без этого работает, благодарю!!!!!!!![
'class' => 'yii\grid\ActionColumn',
'controller' => '/site',
],
ЗЫ: еще раз спасибо, прям душа радовалась, удаляя велосипеды на js
Re: Проблема с ссылками у GridView
Это в columns для кнопок Просмотр/Редактировать/Удалить (обычно последний столбец).sanex3339 писал(а):А вот это куда пихать?