Laravel Route Group Второй параметр? - PullRequest
0 голосов
/ 10 сентября 2018

Я обновил свой проект с laravel 5.5. * До 5.5.43 ... До обновления все было нормально. Но после обновления я вижу предупреждающее сообщение в route/web.php.

laravel route warning

Там написано: обязательный параметр $routes отсутствует.

Но все работает нормально. Затем, когда я поместил пустую строку во втором параметре, предупреждающее сообщение пропало.

laravel route warning

Итак, мой вопрос:

  1. Что я должен указать в необходимом втором параметре?
  2. Если это требуется, то почему все работает нормально? Это должно быть необязательно.

1 Ответ

0 голосов
/ 10 сентября 2018

На самом деле в Laravel довольно сложно следовать. Ваша IDE извлекает определение группы из Router вместо RouteRegistrar.

Внутри Router.php:

public function group(array $attributes, $routes)

Это поддерживает более старый стиль определений групп маршрутов, когда промежуточное ПО определяется в атрибутах, а закрытие ваших маршрутов будет вторым аргументом.

Внутри RouteRegistrar.php:

public function group($callback)

Это новый стиль, в котором группа принимает только закрытие.


Мне не нравится тот факт, что они использовали условие в __call вместо определения метода для промежуточного программного обеспечения, но когда вы вызываете Route :: middleware, фасад переходит к вызову Router и Router :: __ возвращает экземпляр RouteRegistrar, потому что этой линии:

    if ($method == 'middleware') {
        return (new RouteRegistrar($this))->attribute($method, is_array($parameters[0]) ? $parameters[0] : $parameters);
    }
...