Получить текущую группу маршрутов laravel в промежуточном программном обеспечении

Есть ли способ получить родительскую группу маршрутов текущего маршрута в промежуточном программном обеспечении Laravel?

public function handle($request, Closure $next, $guard = null)
{
    // here I mean
}

person Omid    schedule 10.08.2016    source источник
comment
Пожалуйста, приведите пример того, каковы ваши маршруты и что вы ожидаете получить в конечном результате.   -  person thefallen    schedule 10.08.2016


Ответы (1)


Вы не можете получить группу из маршрута, тем более, что вы можете вкладывать группы в другие группы.

Самый простой способ узнать, к какой группе относится текущий запрос, — это добавить параметр в ваше промежуточное ПО. Дополнительные сведения см. в документации здесь: https://laravel.com/docs/5.2/middleware

Сначала объявите параметр в методе handle():

public function handle($request, Closure $next, $group = null)
{
  // your logic here
}

Затем при назначении промежуточного программного обеспечения группам вы можете передать имя группы в качестве параметра:

Route::group(['middleware' => 'yourmiddleware:groupname'], function () {
  // your routes go here
});

Затем в промежуточном программном обеспечении вы можете выполнять различные действия в зависимости от переданного имени группы:

if ($group === 'groupname') {
  // some custom logic here
}

Если логика, которую вы планируете использовать для разных групп, отличается, вам следует рассмотреть возможность реализации нескольких промежуточных программ вместо передачи имени группы в качестве параметра только для разделения обязанностей.

person jedrzej.kurylo    schedule 10.08.2016