php – 如何在Laravel中为两种语言的路由生成URL
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 如何在Laravel中为两种语言的路由生成URL,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2009字,纯文字阅读大概需要3分钟。
内容图文
![php – 如何在Laravel中为两种语言的路由生成URL](/upload/InfoBanner/zyjiaocheng/767/d01fe0fc0504450fba7ccb4121b30aa2.jpg)
基于这个thread我试图为我的网站实现额外的英语,默认是法语,不使用任何前缀,所以像www.website.com和切换到英语将是www.website.com/en/,我’ d喜欢分别使用联系页面的网址,如www.website.com/en/contact和www.website.com/contact,分别为英文版和法文版.
我目前的路线.php
if (Request::segment(1) == 'en') {
App::setLocale(Request::segment(1));
Config::set('app.locale_prefix', Request::segment(1));
}
else {
App::setLocale('fr');
Config::set('app.locale_prefix', '');
}
Route::group(array('prefix' => Config::get('app.locale_prefix')), function()
{
Route::get(
'/',
function () {
//return "main page - ".App::getLocale();
return view('index');
}
);
Route::get(
'/contact/',
function () {
return view('contact');
});
});
我的头文件,其中切换语言的标志图标是
@if (Lang::locale() == 'fr')
<a href="{{ url('/en/' . Request::segment(1)) }}"><img src="{{asset('images/GB.png')}}"></a>
@elseif (strcasecmp(Request::segment(1), 'en') == 0 && Request::segment(2) != NULL)
<a href="{{ url( Request::segment(2)) }}"><img src="{{asset('images/FR.png')}}"></a>
@else
<a href="{{ url( '/') }}"><img src="{{asset('images/FR.png')}}"></a>
@endif
以及我生成网址的方式
<a class="block-title" href="{{ (strcasecmp(Request::route()->getPrefix(), '/en') == 0) ? url('en/contact') : url('/contact') }}">CONTACT</a>
我想知道一种更简洁的方法来生成这些以及我如何获得英文主页面网址www.website.com/en/而不是www.website.com/en
非常感谢 !
解决方法:
生成URL的最佳方法是:
首先,给你的路线命名:
//this route is called 'contact_route'
Route::get('/contact/', ['as' => 'contact_route', function ()
{
return view('contact');
}]);
路由是使用语言环境和前缀动态构建的,但是一旦定义了路由并且您给它命名,就可以使用route helper with:route(‘contact_route’)为路由创建URL
你的例子将成为:
<a class="block-title" href="{{ route('contact_route') }}">CONTACT</a>
您可以在docs中了解更多命名路线
对于尾部斜杠,默认的Laravel .htaccess文件,使用以下规则删除网址末尾的所有斜杠:
RewriteRule ^(.*)/$$1 [L,R=301]
它捕获从斜杠/ $开始^到结尾的所有(.*)并用捕获的内容替换它.因此,如果要添加尾部斜杠,可能应编辑.htaccess文件
内容总结
以上是互联网集市为您收集整理的php – 如何在Laravel中为两种语言的路由生成URL全部内容,希望文章能够帮你解决php – 如何在Laravel中为两种语言的路由生成URL所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。