VicTHOR
@VicTHOR
(╮°-°)╮┳━━┳ ( ╯°□°)╯ ┻━━┻

Как изменить маршрут обработчика kartik GridView или стандартного GridView?

Я добавляю на страницу GridView через renderAjax и в сортировке колонки указан url того экшна, который отдлает GridView, а не того, на странице которого это происходит.

Например, по маршруту /user/index отдается вьюшка, на которой подключен js. В этом js запрашивается другой маршрут - /user/components/detail-info, в которой через renderAjax отдается html с GridView и сортировка в нем ведет на /user/components/detail-info?sort=, а не на /user/index?sort=.

Как исправить?
  • Вопрос задан
  • 38 просмотров
Решения вопроса 1
vitaly_74
@vitaly_74
вы в GridView передаете DataProvider, в DataProvider есть свойство sort который принимает объект Sort, например:
new DataProvider([
   'query'=>...
   'sort'=> new Sort([
      'route'=>'/user/index'
   ])
])

у sort есть такой параметр как route - работайте с ним
тогда сортировщик будет обращаться по тому роутеру что вы укажите, за отображением новых данных.
либо можно не инициализировать новый класс а сделать так:
new DataProvider([
   'query'=>... ,
   'sort'=> [
      'route'=>'/user/index'
   ],
])

вот ссылка на документацию: https://www.yiiframework.com/doc/api/2.0/yii-data-sort
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы