Как в ActiveDataProvider убрать лишние get-параметры в конечном url-е?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
SaintRu
Сообщения: 88
Зарегистрирован: 2020.05.13, 11:22
Контактная информация:

Как в ActiveDataProvider убрать лишние get-параметры в конечном url-е?

Сообщение SaintRu »

Подскажите, не могу найти где копать...
Формирую DataProvider:

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

    public function getMessages($post_id): DataProviderInterface
    {
        $query = Message::find()->andWhere(['post_id' => $post_id]);
        return new ActiveDataProvider([
            'query' => $query,
            'sort' => [
                'defaultOrder' => ['sort' => SORT_ASC],
            ],
            'pagination' => [
                'defaultPageSize' => 10,
                'pageSizeLimit' => [10, 10],
            ],
        ]);
    }
выдает такой адрес

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

http://travel.loc/ru/forum/post/1?route=ru%2Fforum%2Fpost%2F1&page=2
а нужен

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

http://travel.loc/ru/forum/post/1?&page=2
Мой старт-ап ;) https://website39.site
rak
Сообщения: 2181
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: Как в ActiveDataProvider убрать лишние get-параметры в конечном url-е?

Сообщение rak »

явно же в urlManager проблемы, вот там и нужно копать
SaintRu
Сообщения: 88
Зарегистрирован: 2020.05.13, 11:22
Контактная информация:

Re: Как в ActiveDataProvider убрать лишние get-параметры в конечном url-е?

Сообщение SaintRu »

rak писал(а): 2021.07.01, 23:12 явно же в urlManager проблемы, вот там и нужно копать
Там так

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

'forum/post/<id:\d+>' => 'forum/post',
Мой старт-ап ;) https://website39.site
rak
Сообщения: 2181
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: Как в ActiveDataProvider убрать лишние get-параметры в конечном url-е?

Сообщение rak »

полностью конфиг нужен
и listview заодно
SaintRu
Сообщения: 88
Зарегистрирован: 2020.05.13, 11:22
Контактная информация:

Re: Как в ActiveDataProvider убрать лишние get-параметры в конечном url-е?

Сообщение SaintRu »

rak писал(а): 2021.07.02, 01:03 полностью конфиг нужен
и listview заодно
Возможно в этом причина:

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

        'urlManager' => [
            'class' => 'frontend\urls\LangUrlManager',
сам класс

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

class LangUrlManager extends UrlManager
{
    public function createUrl($params)
    {
        if(isset($params['lang']) ){
            //Если указан идентефикатор языка, то делаем попытку найти язык в БД,
            //иначе работаем с языком по умолчанию
            $lang = Lang::isset($params['lang']) ? $params['lang'] : Lang::current();
            unset($params['lang']);
        } else {
            //Если не указан параметр языка, то работаем с текущим языком
            $lang = Lang::current();
        }
        $url = parent::createUrl($params);
        return $url == '/' ? '/' . $lang : '/' . $lang . $url;
    }
}
Вывод пагинации осуществляется Yii-виджетом

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

                <?= LinkPager::widget([
                    'pagination' => $dataProvider->getPagination(),
                ]) ?>
Т.к. остальное там не существенно:

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

'urlManager' => [
            'class' => 'frontend\urls\LangUrlManager',
            //           'class' => 'yii\web\UrlManager',
            'hostInfo' => $params['frontendHostInfo'],
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'cache' => false,

            'rules' => [
                '' => 'site/index',
                'signup' => 'auth/signup/index',
                'reset/<_a:[\w-]+>' => 'auth/reset/<_a>',
                '<_a:login|logout>' => 'auth/auth/<_a>',
                'auth/network/auth' => 'auth/network/auth',
                'fast/sign-up' => 'auth/fast/sign-up',
                'site/login' => 'auth/auth/login',
                'site/captcha' => 'site/captcha',
                'avia' => 'site/avia',

                ['pattern' => 'turbo', 'route' => 'market/turbo', 'suffix' => '.xml'],
                ['pattern' => 'rss', 'route' => 'market/rss', 'suffix' => '.xml'],
                ['pattern' => 'sitemap', 'route' => 'sitemap/index', 'suffix' => '.xml'],
                ['pattern' => 'sitemap-<target:[a-z-]+>', 'route' => 'sitemap/<target>', 'suffix' => '.xml'],

                'apple-touch-icon.png' => 'apple-touch-icon.png',
                'humans.txt' => 'humans.txt',


                'test' => 'test/index',
                'cars' => 'cars/cars/index',
                'car/<id:\d+>' => 'cars/cars/car',

                'cars/cars/get-search' => 'cars/cars/get-search',
                'cars/booking/get-calendar' => 'cars/booking/get-calendar',
                'cars/booking/get-rent-car' => 'cars/booking/get-rent-car',
                'cars/booking/get-amount' => 'cars/booking/get-amount',
                'cars/checkout/booking' => 'cars/checkout/booking',
                'cars/<slug:[\w\-]+>' => 'cars/cars/category',

                'funs' => 'funs/funs/index',
                'fun/<id:\d+>' => 'funs/funs/fun',

                'funs/funs/get-search' => 'funs/funs/get-search',
                'funs/booking/get-calendar' => 'funs/booking/get-calendar',
                'funs/booking/get-tickets' => 'funs/booking/get-tickets',
                'funs/booking/get-times' => 'funs/booking/get-times',
                'funs/booking/get-amount' => 'funs/booking/get-amount',
                'funs/checkout/booking' => 'funs/checkout/booking',
                'funs/<slug:[\w\-]+>' => 'funs/funs/category',

                'tours' => 'tours/tours/index',
                'tours/booking/getcalendar' => 'tours/booking/getcalendar',
                'tours/booking/gettickets' => 'tours/booking/gettickets',
                'tours/booking/getlisttours' => 'tours/booking/getlisttours',
                'tours/booking/getday' => 'tours/booking/getday',
                'tours/booking/get-amount' => 'tours/booking/get-amount',
                'tours/checkout/booking' => 'tours/checkout/booking',

                'tour/<slug:[\w\-]+>' => 'tours/tours/tour',
                'tours/<slug:[\w\-]+>' => 'tours/tours/category',

                'stays' => 'stays/stays/index',
                'stays/stays/get-booking' => 'stays/stays/get-booking',
                'stays/stays/get-error' => 'stays/stays/get-error',
                'stays/stays/map' => 'stays/stays/map',
                'stays/stays/get-maps' => 'stays/stays/get-maps',
                'stays/checkout/booking' => 'stays/checkout/booking',
                'stay/<id:\d+>' => 'stays/stays/stay',

                'foods' => 'food/index',
                'food/map-foods' => 'food/map-foods',
                'food/<id:\d+>' => 'food/view',

                'shops' => 'shop/catalog/index',
                'shop/catalog/<id:\d+>' => 'shop/catalog/category',
                'shop/product/<id:\d+>' => 'shop/catalog/product',
                'shop/<id:\d+>' => 'shop/catalog/shop',
                'shop/cart/add' => 'shop/cart/add',
                'shop/cart/sub' => 'shop/cart/sub',
                'shop/cart/remove' => 'shop/cart/remove',
                'shop/cart/quantity' => 'shop/cart/quantity',
                'shop/cart' => 'shop/cart/index',
                'survey/<id:\d+>' => 'survey/view',

                'moving' => 'moving/moving/index',
                'moving/faq' => 'moving/faq/index',
                'moving/docs' => 'moving/docs/index',
                'moving/realty' => 'moving/realty/index',
                'moving/land' => 'moving/land/index',
                'land/map/get-lands' => 'land/map/get-lands',
                'moving/region' => 'moving/region/index',
                'moving/bussines' => 'moving/bussines/index',

                'moving/faq/category/<id:\d+>' => 'moving/faq/category',
                'moving/faq/answer/<id:\d+>' => 'moving/faq/answer',
                'moving/close/get-link' => 'moving/close/get-link',
                'moving/<slug:[\w\-]+>' => 'moving/moving/view',

                'lands' => 'land/land/index',
                'land/investment' => 'land/investment/index',
                'land/map' => 'land/map/index',
                'land/add' => 'land/add/index',

                'forum' => 'forum/index',
                'forum/category' => 'forum/category',
                'forum/post/<id:\d+>' => 'forum/post',
                'forum/create-post' => 'forum/create-post',
                'forum/remove-post' => 'forum/remove-post',
                'forum/fix-post' => 'forum/fix-post',
                'forum/unfix-post' => 'forum/unfix-post',
                'forum/lock-post' => 'forum/lock-post',
                'forum/unlock-post' => 'forum/unlock-post',
                'forum/update-message' => 'forum/update-message',
                'forum/remove-message' => 'forum/remove-message',

                'tickets' => 'tickets/tickets/index',

                'legals/view' => 'legals/view',
                'cabinet/dialogs' => 'cabinet/dialog/index',
                'cabinet/orders' => 'cabinet/order/index',
                'cabinet/order' => 'cabinet/order/view',
                'cabinet/dialog' => 'cabinet/dialog/dialog',
                'cabinet/petition' => 'cabinet/dialog/petition',
                'conversation' => 'cabinet/dialog/conversation',
                'support' => 'cabinet/dialog/support',
                'post' => 'post/index',
                'post/comment' => 'post/comment',
                'post/widget-map' => 'post/widget-map',
                'post/tag/<slug:[\w\-]+>' => 'post/tag',
                'post/<id:\d+>' => 'post/post',
                'post/<slug:[\w\-]+>' => 'post/category',
                'cabinet' => 'cabinet/default/index',
                'cabinet/<_c:[\w\-]+>' => 'cabinet/<_c>/index',
                'cabinet/<_c:[\w\-]+>/<id:\d+>' => 'cabinet/<_c>/view',
                'cabinet/<_c:[\w\-]+>/<_a:[\w-]+>' => 'cabinet/<_c>/<_a>',
                'cabinet/<_c:[\w\-]+>/<id:\d+>/<_a:[\w\-]+>' => 'cabinet/<_c>/<_a>',
                '/<slug:[\w\-]+>' => 'page/view',
                ['class' => 'frontend\urls\PageUrlRule'],
                ['class' => 'frontend\urls\MovingPageUrlRule'],
                ['class' => 'frontend\urls\TourUrlRule'],
                ['class' => 'frontend\urls\TourTypeUrlRule'],
                ['class' => 'frontend\urls\CarTypeUrlRule'],
                ['class' => 'frontend\urls\FunTypeUrlRule'],
                '<_c:[\w\-]+>' => '<_c>/index',
                '<_c:[\w\-]+>/<id:\d+>' => '<_c>/view',
                '<_c:[\w\-]+>/<_a:[\w\-]+' => '<_c>/<_a>',
                '<_c:[\w\-]+>/<id:\d+>/<_a:[\w\-]+' => '<_c>/<_a>',
            ],
        ],
    ],
Мой старт-ап ;) https://website39.site
Ответить