Laravel не может найти правильную текущую страницу №.какой результат разбивки на страницы не работает (показывается только результат первой страницы) - PullRequest
0 голосов
/ 26 марта 2019

Давайте рассмотрим пример

https://www.example.net/xyz?page=2

Route::get('/xyz', 'controller@getpages'); 

public function getpages() {
  $variable=Model::paginate(10);
  dd($variable);
}

я сделал "dd ($ variable);"в функции .который дает результат

LengthAwarePaginator {#1209 ▼
#total: 4341
#lastPage: 435
#items: Collection {#1211 ▶}
#perPage: 10
#currentPage: 1
#path: "www.example.net/xyz"
#query: []
#fragment: null
#pageName: "page"
} 

dd ($ request);

Request {#38 ▼
  #json: null
  #convertedFiles: null
  #userResolver: Closure {#1028 ▶}
  #routeResolver: Closure {#1029 ▶}
  +attributes: ParameterBag {#40 ▶}
  +request: ParameterBag {#46 ▶}
  +query: ParameterBag {#46 ▶}
  +server: ServerBag {#42 ▶}
  +files: FileBag {#43 ▶}
  +cookies: ParameterBag {#41 ▶}
  +headers: HeaderBag {#44 ▶}
  #content: null
  #languages: null
  #charsets: null
  #encodings: null
  #acceptableContentTypes: null
  #pathInfo: "/xyz"
  #requestUri: "/xyz?page=2"
  #baseUrl: ""
  #basePath: null
  #method: "GET"
  #format: null
  #session: Store {#112 ▶}
  #locale: null
  #defaultLocale: "en"
  -isForwardedValid: true
}

dd ($ request-> all ());

он показывает

array:1 [▼
  "/xyz" => null
]

на сайте с ошибкой.но остальные сайты, нумерация страниц которых работает нормальнодает следующий вывод:

array:1 [▼
 "page" => "2"
]

вместо # currentPage: 2 .это работало нормально, но со вчерашнего дня это происходит так на всем нашем сайте.так как я могу это исправить?

Примечание: я использовал этот же код на многостраничных сайтах.но это не работает в этом только

я получил надлежащую проблему здесь. На нашем всем сайте передача контроллеру.и в валидации.не упоминается, как я могу решить это.

Ответы [ 2 ]

1 голос
/ 26 марта 2019

Защищенный файл htaccess

   RewriteEngine On
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

    #RewriteEngine On
    #RewriteCond %{REQUEST_FILENAME} !-f
    #RewriteCond %{REQUEST_FILENAME} !-d
    #RewriteRule ^(.*)$ /index.php?/$1 [L]

    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

    #RewriteCond %{THE_REQUEST} ^.*/index\.php 
    #RewriteRule ^(.*)index.php$ /$1 [R=301,L] 
    ##Redirect 301 /index.php https://www.example.net/
    #RewriteEngine On
    #RewriteCond %{HTTP:X-Forwarded-Proto} !https [OR]
    #RewriteCond %{HTTP_HOST} !^www. [NC]
    #RewriteRule ^(.*)$ https://www.example.net/$1 [L,R=301]

    <IfModule mod_rewrite.c>
        <IfModule mod_negotiation.c>
            Options -MultiViews
        </IfModule>

        RewriteEngine On
        RewriteBase /
        RewriteRule ^api/(.*)?$ http://127.0.0.1:8888/$1 [P,L] 
        # Redirect Trailing Slashes If Not A Folder...
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)/$ /$1 [L,R=301]

        # Handle Front Controller...
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ /index.php?/$1 [L]

        # Handle Authorization Header
        RewriteCond %{HTTP:Authorization} .
        RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    </IfModule>

Исправленный файл htaccess

    RewriteEngine On
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

    #RewriteEngine On
    #RewriteCond %{REQUEST_FILENAME} !-f
    #RewriteCond %{REQUEST_FILENAME} !-d
    #RewriteRule ^(.*)$ /index.php?/$1 [L]



    #RewriteCond %{THE_REQUEST} ^.*/index\.php
    #RewriteRule ^(.*)index.php$ /$1 [R=301,L]
    ##Redirect 301 /index.php https://www.example.net/
    #RewriteEngine On
    #RewriteCond %{HTTP:X-Forwarded-Proto} !https [OR]
    #RewriteCond %{HTTP_HOST} !^www. [NC]
    #RewriteRule ^(.*)$ https://www.example.net/$1 [L,R=301]


    <IfModule mod_rewrite.c>
        <IfModule mod_negotiation.c>
            Options -MultiViews
        </IfModule>

        RewriteEngine On
        RewriteBase /
        RewriteRule ^api/(.*)?$ http://127.0.0.1:8888/$1 [P,L]
        # Redirect Trailing Slashes If Not A Folder...
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)/$ /$1 [L,R=301]

        # Handle Front Controller...
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^ index.php [L]

        # Handle Authorization Header
        RewriteCond %{HTTP:Authorization} .
        RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    </IfModule>
0 голосов
/ 26 марта 2019

Я попробовал твой код, у меня нормально работает не удалось выяснить проблему с вашим кодом на основе предоставленной информации. если он не работает, установите manullay currentPage в вашем контроллере. так что ваш контроллер будет выглядеть как

 public function getpages(Request $request) {
   Paginator::currentPageResolver(function() use ($request){
       return $request->page;
   });
   $variable=Model::paginate(10);
   dd($variable);
 }
...