我需要将位置添加到所有网址。我使用" mapWebRoutes" in" RouteServiceProvider.php"像这样:
processData() {
const data = this.state.data;
if(data[0].weight > 0.25 || (data[0].weight+data[1].weight) > 0.67) {
return data.map(point => ({ ...point, weight: point.weight / 3 }))
} else {
return data.slice()
}
}
但是当段数超过一个时,中间件就不会运行。 例如,位置已正确添加到下面的地址。
从中间件返回后 chmod a+x /opt/vscode-1.18.0/resources/app/node_modules/vscode-ripgrep/bin/rg
=> protected function mapWebRoutes()
{
$locale = Request::segment(1);
Route::group([
'middleware' => 'web',
'namespace' => $this->namespace,
'prefix' => $locale
], function ($router) {
require base_path('routes/web.php');
});
}
但位置未添加到以下地址:
http://example.com/test
这意味着中间件尚未运行。我将http://example.com/en/test
添加到第一行中间件以确保中间件正在运行。但是当段数超过一个时,中间件就不会运行。
我的中间件代码是:
http://example.com/test1/test2
答案 0 :(得分:0)
我将mapWebRoutes()更改为以下代码并解决了问题:
protected function mapWebRoutes()
{
if (!array_key_exists(Request::segment(1), config('translatable.locales'))) {
Route::group([
'middleware' => ['web'],
'namespace' => $this->namespace
], function ($router) {
require base_path('routes/web.php');
});
} else {
$locale = Request::segment(1);
Route::group([
'middleware' => ['web'],
'namespace' => $this->namespace,
'prefix' => $locale
], function ($router) {
require base_path('routes/web.php');
});
}
}
答案 1 :(得分:0)
谢谢。 我遵循了您的想法,也增加了条件。
我在mapWebRoutes
方法中有此方法:
if (!Language::isValid($locale))
$locale = '';
Route::middleware(['web', 'lang'])
->namespace($this->namespace)
->prefix($locale)
->group(function () {
require base_path('routes/web/test.php');
require base_path('routes/web/general.php');
require base_path('routes/web/blog.php');
require base_path('routes/web/payments.php');
});
如果语言无效,则空值将省略前缀并调用中间件。