我试图以自动方式获取所有路由的实际应用程序区域设置作为前缀,每次调用这样的路由时,我都将其作为参数:
web.php
Route::group(['prefix' => '{language}'], function() {
Route::get(__('contact'), function () {
return view('pages.contact');
})->name('contact');
});
标题。刀身php
<li class="nav-item">
<a class="nav-link" href="{{route('contact', app()->getLocale())}}">@lang('contact')</a>
</li>
这实际上是工作的,它显示en_US/联系例如,有没有一种方法来避免在路由呼叫上给出区域设置?
编辑:在回答了一些问题后,我按照这里的文档进行了操作https://laravel.com/docs/5.8/urls#default-值,因此我的代码如下所示:
中间件:
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\URL;
class SetDefaultLocaleForUrls
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
URL::defaults(['locale' => app()->getLocale()]);
return $next($request);
}
}
内核php:
protected $routeMiddleware = [
....
'locale' => \App\Http\Middleware\SetDefaultLocaleForUrls::class,
....
];
web.php:
Route::group(['prefix' => '{locale}', 'middleware' => 'locale'], function () {
Route::get(__('contact'), function () {
return view('pages.welcome');
})->name('contact');
});
但还需要告诉Locale我做错了什么?
"Missing required parameters for [Route: contact] [URI: {locale}/contact]"
EDIT2:注意到中间件只在我在URL上设置locale参数时起作用,如果我不编写它,它不会触发,可能是错误
您可以使用url::defaults()
方法设置url的默认值。您可以将其放入中间件中,使其适用于所有路由。
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\URL;
class SetDefaultLocaleForUrls
{
public function handle($request, Closure $next)
{
URL::defaults(['locale' => $request->user()->locale]);
return $next($request);
}
}
这里的文档中提到:https://laravel.com/docs/5.8/urls#default-价值观
我想强制我的Symfony 2.5应用程序的区域设置为。我希望这个区域设置用于strftime()函数。 我的: 我正在我的一个控制器中使用以下代码来调试: 当这样执行时,它显示:。 但是,当第一行未注释时,它会显示:,因此区域设置已安装在系统中并正常工作。 我如何使Symfony始终使用配置中指定的语言环境? $locale-a:
我在azure portal中为Cosmos帐户启用了多写功能。我不明白是否也必须使用SDK来设置ApplicationRegion?如果是强制的,这个属性的目的是什么?我看到了下面的文档,但我仍然不清楚。 文档
我创建laravel项目,在我的本地Windows电脑上工作良好。一旦我上传到Centos7服务器(通过SSH),我的所有路由都不工作。我试图通过行动修复,例如清除缓存,删除供应商文件夹和重做安装作曲家,但没有任何帮助。我从下面的日志中抓取。 [2018-12-20 13:09:17]本地的。错误:逻辑异常:无法为序列化准备路由[api/user]。在 /var/www/html/srp/vend
内刀片-。 在。 如果我跑: 我得到正确的欢迎刀片页面与正确的翻译。 另一条路线: 如果我运行
我在我的注解里有。yaml使用注释管线设置的以下设置: 我这里的问题是,我可以创建一个像是否不带区域设置前缀? 这是保护区,我可以使用用户语言。我尝试使用这个symfony路由文档,但我希望保留注释。 目前它看起来像,但我希望。