我正在使用Laravel5构建一个多语言网站。
我知道,在Laravel中,我可以为如下路线定义前缀
:
http://domain/en/users/1
http://domain/en/shop/1
在中间件中,我可以获取url路径的片段来检测语言并设置当前请求的区域设置。
但我找不到无论如何添加lang参数在默认情况下的路由像folowings:
http://domain/users/1?lang=en
http://domain/shop/1?lang=en
或者有什么方法可以钩住框架的路由函数来附加默认参数?lang=ja
进入所有路线时,我打电话?(ja是之前在中间件中设置的应用程序的当前区域设置)
谢谢
我希望这就是你要找的。使用查询字符串参数生成路由
如果请求没有“lang”查询参数,您可以创建一个中间件来设置默认的“lang”查询参数。它将适用于应用程序的所有请求,因此您可以在每个路由处理程序中获取lang参数。
在控制台中(在项目目录中)创建一个过滤器:
php artisan make:middleware LangFilter
然后打开/app/Http/Kernel。php
并添加:
\App\Http\Middleware\LangFilter::class
到$middleware
数组。现在打开您创建的中间件,即/app/Http/Middleware/LangFilter。php
并添加检查和设置代码:
<?php
namespace App\Http\Middleware;
use Closure;
class LangFilter
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
// Checks for lang in the parameters.
if($request->input('lang') == null) {
// Adds the default one since it doesn't have one.
$request->merge(array('lang' => 'en'));
}
return $next($request);
}
}
如果您想对所有路由的子集进行这种过滤,您需要以不同的方式在K中注册中间件ernel.php.
使现代化
用于生成具有当前区域设置的路由的助手:
>
打开助手。php,并添加以下代码以添加帮助程序:
<?php
function locale_route($name, $parameters = [], $absolute = true) {
return route($name, array_merge($parameters, [
'lang' => App::getLocale()
]), $absolute);
}
?>
将帮助文件添加到composer中的composer自动加载。json:
"autoload" : {
"files" : [
"app/Support/helpers.php"
]
}
现在在控制台中运行:
composer dumpautoload
现在,您可以使用为route
提供的相同参数调用locale\u route
,以创建在查询参数中添加了当前语言环境的URL。
本文向大家介绍Python如何定义有默认参数的函数,包括了Python如何定义有默认参数的函数的使用技巧和注意事项,需要的朋友参考一下 问题 你想定义一个函数或者方法,它的一个或多个参数是可选的并且有一个默认值。 解决方案 定义一个有可选参数的函数是非常简单的,直接在函数定义中给参数指定一个默认值,并放到参数列表最后就行了。例如: 如果默认参数是一个可修改的容器比如一个列表、集合或者字典,可以使用
当我在JAX-RS中添加字符串的默认值时,它不接受该值。它保持为null或空。 当我将状态传递为空或或未定义时,它将保持为空或或未定义。它不会将默认值视为已确认。
根据enable_if结构的定义: 我想知道怎么做 特别是: 在
我想在我的子组件中有一个默认路由(使用设置),并自动将参数传递给它。我在文档中找不到如何做到这一点。我有一个具有以下路由的父组件: 以及子组件,其具有: 这当然会失败:我无法弄清楚如何将一些默认参数传递给第一个路由。我确实通过创建另一个没有参数的路由并将其用作默认值来启动它: 但这当然并不理想。到目前为止,我还没有找到比使用不带参数的路由,然后使用一些默认参数立即重定向更好的方法。难道没有更好的办
问题内容: 我很难理解算法中问题的根本原因。然后,通过逐步简化函数,我发现Python中对默认参数的求值行为不符合我的预期。 代码如下: 问题是,如果未显式给出属性,则Node类的每个实例都共享相同的属性,例如: 我不了解此设计决定的逻辑吗?为什么Python设计人员决定在定义时评估默认参数?这对我来说似乎很违反直觉。 问题答案: 另一种选择是重量级的-将“默认参数值”存储为函数对象的“ thun
问题 你想定义一个函数或者方法,它的一个或多个参数是可选的并且有一个默认值。 解决方案 定义一个有可选参数的函数是非常简单的,直接在函数定义中给参数指定一个默认值,并放到参数列表最后就行了。例如: def spam(a, b=42): print(a, b) spam(1) # Ok. a=1, b=42 spam(1, 2) # Ok. a=1, b=2 如果默认参数是一个可修改的容器