С Laravel 5 я не могу настроить параметры маршрута.
Мой маршрут настроен следующим образом:
Route::get('test', 'TestController@test');
И мой TestController выглядит так:
public function test(Request $request) { var_dump($request->input('foo')); }
Когда я просматриваю этот маршрут с параметром
/test?foo=bar
результат равен NULL.
Может ли кто-нибудь сказать мне, что я делаю неправильно?
Синтаксис Input :: get ('foo') не работает (и даже не упоминается в документации для L5).
Обновить:
Я использую Apache как веб-сервер.
Я также пробовал
$request->get('foo')
и такой маршрут
Route::get('test/{foo?}', 'TestController@test');
с тем же URL-адресом и по-прежнему получить нуль.
Обновление 2:
Документация L5 дает примеры для таких маршрутов:
/test/bar
вместо
/test?foo=bar
В L4 можно было найти маршруты с GET, как
/test?foo=bar&id=2&user=admin
или изменение порядка
/test?id=2&user=admin&foo=bar
с одним и тем же маршрутом
Route::get('test', 'TestController@test');
и все, что вам нужно было сделать, это получить
Input::get('user')
Но с L5 было бы невозможно изменить порядок параметров, когда вам нужно использовать косые черты на маршрутах, например
Route::get('test/{id}/{user}/{foo}', 'TestController@test');
Действительно ли это большое снижение для маршрутов в L5?
Проблема была в файле .htaccess
, я использовал отредактированный файл, в котором параметры не получались.
С файлом .htaccess
по умолчанию, который поставляется с Framework, все работает!
Вы попробуете это?
use Request; public function test(Request $request) { var_dump($request->get('foo')); }
В laravel 5 вы можете поместить параметр в метод контроллера следующим образом:
public function test(Request $request, $foo) { }
с маршрутом – Route :: get ('test / {foo}', 'TestController @ test'); `