Знаю что можно передавать параметры так:
...->middleware('name:param')
Но как передать параметр из ссылки?
/objects/edit/{object}
Вот мне этот {object} и нужно кинуть в мидлваре. В методе, этот параметр - экземпляр класса. Посути один об'экт из всема вытекающими.
class Middleware
{
public function handle($request, Closure $next)
{
// если у вас роутер отдает object как id (строку)
$objectId = $request->route('object'));
$object = Object::find($objectId);
// если у вас роутер отдает object как объект
$object = $request->route('object'));
$response = $next($request);
return $response;
}
}
Если у вас роутер отдает строку, а вам хочется сразу объект - можно забиндить самому.
https://laravel.com/docs/6.x/routing#route-model-binding
Так же биндинг происходит за счет того, что Object должен быть указан в качестве параметра метода контроллера, иначе биндинг DI контейнера не сработает.
class ObjectController()
{
public function method(Object $object){
//
}
}
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости