2016-06-07 1 views
0

Я использую laravel 5.2 и имею проблемы с маршрутизации. Предположительно у меня есть этот маршрут: http://example.com/out/parameter1/parameter2/Параметр параметра опции Laravel не работает

Parameter1 следует требовать, а Parameter2 должно быть факультативным. Когда пользователь вводит этот URL: http://example.com/out/parameter1/ или этот http://example.com/out/parameter1/parameter2/, они должны иметь возможность продолжить. Когда это будет введено, http://example.com/out/ они будут перенаправлены на домашнюю страницу.

Вот мой маршрут:

Route::get('out/{param1}/{param2?}', 'MyControll[email protected]']); 
Route::get('out/', '[email protected]']); 

Контроллер:

public function out($param1, $param2 = '', Request $request) { 
    // logic here 
} 

ошибка, что я получаю это: Argument 3 passed to App\Http\Controllers\MyController::out() must be an instance of Illuminate\Http\Request, none given

Я уже указать значение по умолчанию для param2 на метод.

+0

проверить с вашим маршрутизатором. change Route :: get ('out/{param1}/{param2?}', 'MyController @ out']); to Route :: get ('out/{param1}/{param2}', 'MyController @ out']); –

+0

@MansoorH, он не работает, так как я получаю ошибку 404. Кроме того, параметр param2 должен быть необязательным. – basagabi

+0

Каковы возможные значения третьего параметра, вы можете определить –

ответ

1

экземпляр запроса должен быть первым один

public function out(Request $request, $param1, $param2 = '') 
{ 
    // logic here 
} 

Docs: https://laravel.com/docs/5.2/controllers под инъекционным методом

+0

это сработало !!!! Благодаря!! Я все еще не могу принять это как правильный ответ, поскольку он требует меня на пару минут. Я буду отмечать это через некоторое время :) – basagabi

 Смежные вопросы

  • Нет связанных вопросов^_^