我目前的路线.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 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 href="{{ route('contact_route') }}">CONTACT</a>
您可以在docs中了解更多命名路线
对于尾部斜杠,默认的Laravel .htaccess文件,使用以下规则删除网址末尾的所有斜杠:
RewriteRule ^(.*)/$ [L,R=301]
它捕获从斜杠/ $开始^到结尾的所有(.*)并用捕获的内容替换它.因此,如果要添加尾部斜杠,可能应编辑.htaccess文件
总结以上是内存溢出为你收集整理的php – 如何在Laravel中为两种语言的路由生成URL全部内容,希望文章能够帮你解决php – 如何在Laravel中为两种语言的路由生成URL所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)