https://laravel.com/docs/5.5/urls#default-values
在文档中说,
you may use the URL::defaults method to define a default value for this
parameter that will always be applied during the current request.
我不明白当前的要求是什么
我认为它应该用作
route('route-name');
并且应该使用默认值
替换参数生成url该文档还说它必须在中间件
中完成但是中间件会对请求进行操作,但是当我使用路由助手时,我不会发出任何请求
请帮助示例会非常有帮助 可能是我想念了解请帮助
答案 0 :(得分:0)
假设你有默认的param,它与应用程序的每个请求一起使用,在这种情况下,你必须使用中间件。
就像文档https://laravel.com/docs/5.5/urls#default-values
中提到的那样如果您只想将默认值传递给路线,则可以执行此操作。
Route::get('user/{name?}', function ($name = defaultValue) {
return $name;
});
希望这会有所帮助
答案 1 :(得分:0)
您需要将逻辑放入服务提供程序中,以使其工作而不是使用中间件:
SessionListener
然后,您可以在不传递必需参数的情况下使用public function register()
{
\URL::defaults(['some_param' => 'some_value']);
}
。
答案 2 :(得分:0)
我尝试将中间件应用于以下路由,这些路由要求使用默认值 locale ,但无法正常工作。
Route::get('/{locale}/posts', function () {
//
})->name('post.index')->middleware('locale');
// And Inside your Kernel.php
protected $routeMiddleware [
'locale' => \App\Http\Middleware\SetDefaultLocaleForUrls::class, ]
但是,如果您将此中间件应用到使用route('post.index')
方法生成此路由的URL的Routes或Controllers上,则它实际上可以工作。然后它将填充您在中间件中设置的语言环境的默认值。