Прежде всего правильный синтаксис для задания параметра: {parameter?}
Теперь второй хочет спросить вас, вы зарегистрировали свое промежуточное программное обеспечение в файле kernel.php
(я думаю, что вы сделали, но все еще должны подтвердить)
теперь ваша кнопка не дает параметров для маршрута
{{ route('admin.courses.index') }}
, что означает, что ваше промежуточное ПО будет работать $next($request)
так что, если вам нужно увидеть часть вида (которую вы говорите, фильтр), сделайте это так {{ route('admin.courses.index',['status'=>'active']) }}
теперь последний указывает именованный маршрут, если вы не указали имя маршрута, вы не можете позвонить route()
, укажите имя маршрута, как показано ниже
Route::get('admin/courses/{status?}', 'Admin\CoursesController@index')->name('admin.courses.index')->middleware('status');
и дать имя параметра status
, как указано выше
Update
Еще одна ошибка, вы не можете получить параметр, как вы сделали.
$status = $request->status();
просто напишите ниже
$status = $request->status;
Обновление
Итак, теперь вы сталкиваетесь с ошибкой setCooking on member function
, потому что вы return view('someview')
формируете промежуточное ПО, что совсем не является хорошей практикой.
в промежуточном программном обеспечении используйте redirect()
для некоторого маршрута.
поэтому я предлагаю вам составить маршрут, по которому вы вернетесь к просмотру.
и перенаправление на этот маршрут из промежуточного ПО решит вашу проблему.