我将项目从laravel 5.5。*更新为5.5.43 ...在更新之前,一切正常。但是更新之后,我在route/web.php
中看到一条警告消息。
它说:缺少必需的参数
$routes
。
但是一切正常。然后,当我在第二个参数中输入空字符串时,警告消息消失了。
所以我的问题是:
答案 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);
}