Laravel路由组第二个参数?
Laravel Route Group Second Parameter?
我将我的项目从 laravel 5.5.* 更新到 5.5.43... 在更新之前一切正常。但是更新后,我在 route/web.php
.
中看到一条警告消息
It says: Required parameter $routes
missing.
但一切正常。然后,当我在第二个参数中放入一个空字符串时,警告消息消失了。
所以我的问题是:
- 我应该在所需的第二个参数中输入什么?
- 如果需要,为什么一切正常?它应该是可选的。
这在 Laravel 中实际上很难理解。您的 IDE 正在从 Router 而不是 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);
}
我将我的项目从 laravel 5.5.* 更新到 5.5.43... 在更新之前一切正常。但是更新后,我在 route/web.php
.
It says: Required parameter
$routes
missing.
但一切正常。然后,当我在第二个参数中放入一个空字符串时,警告消息消失了。
所以我的问题是:
- 我应该在所需的第二个参数中输入什么?
- 如果需要,为什么一切正常?它应该是可选的。
这在 Laravel 中实际上很难理解。您的 IDE 正在从 Router 而不是 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);
}