Laravel路由组第二个参数?

时间:2018-09-10 11:31:14

标签: php laravel laravel-5 routes laravel-routing

我将项目从laravel 5.5。*更新为5.5.43 ...在更新之前,一切正常。但是更新之后,我在route/web.php中看到一条警告消息。

laravel route warning

  

它说:缺少必需的参数$routes

但是一切正常。然后,当我在第二个参数中输入空字符串时,警告消息消失了。

laravel route warning

所以我的问题是:

  1. 我应该在第二个参数中输入什么?
  2. 如果需要,那么为什么一切正常?它应该是可选的。

1 个答案:

答案 0 :(得分:0)

在Laravel中,这实际上很难遵循。您的IDE正在从路由器而不是RouteRegistrar中提取组定义。

内部Router.php:

public function group(array $attributes, $routes)

这支持路由组定义的较旧样式,其中在属性中定义了中间件,而路由闭包将成为第二个参数。

内部RouteRegistrar.php:

public function group($callback)

这是新的样式,其中组仅接受闭包。


我不喜欢他们在__call中使用条件而不是为中间件定义方法的事实,但是当您调用Route :: middleware时,外观会转发到Router和Router :: __ call返回RouteRegistrar实例,因为这行的内容:

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