Параметр не передается контроллеру в Laravel

#laravel

#laravel

Вопрос:

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

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

Файл маршрута

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

Контроллер

 public function getpages(Request $request) {
 dd($request->all());
}
  

Отображение результата в виде

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

вместо

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

Комментарии:

1. Все выглядит в порядке, вы на 100% уверены, что нажимаете xyz?страница = 2, а не обычный /xyz?

Ответ №1:

попробуйте:

 public function getpages(Request $request) {
 print_r($request->page);
}
  

Также убедитесь, что вы используете : use IlluminateHttpRequest;

Ответ №2:

попробуйте

 $query = $request->query();

$page = $request->query('page');
  

В вашем коде ошибка. вы пропустили символ $

 public function getpages(Request $request) {
 dd($request->all());
}
  

Комментарии:

1. Он может просто $request-> page нет необходимости использовать querry() в последних версиях laravel для доступа к параметрам запроса

Ответ №3:

 use IlluminateHttpRequest;
use AppHttpRequests;

public function getpages(Request $request) {
  $request = $request->only('page');
  dd($request);
}
  

Массива нет. только один параметр «$page»

Ответ №4:

Попробуйте приведенный ниже код:

Это пользовательский контроллер регистра:

 use IlluminateHttpRequest;

use AppUser;

public function register(Request $request){

        $data = $this->validate($request, [
            'name' => 'required',
            'email' => 'required|email|unique:users',
            'password' => 'required'
        ]);

        $data['password'] = app('hash')->make($data['password']);

        User::create($data);

        $credentials = $request->only('email', 'password');

        if ($token = $this->guard()->attempt($credentials)) {

            return $this->respondWithToken($token);
        }

        return response()->json(['error' => 'Unauthorized'], 401);

     }
  

Ответ №5:

Проблема была в файле .htaccess, поэтому я извлек старый .htaccess и вставил его.