我在Laravel 5.3中构建了一个多语言应用程序,我有一堆api路由,当我使用默认语言时,会返回一些资源,其中url就像这个http://app-domain.com/api/resource
。
当我不使用默认语言时,问题出现了。当应用程序尝试调用api时,它向http://app-domain.com/locale/api/resource
发送请求,该请求不返回任何内容,因为它不是正确的路径。
我的实施非常简单,只是我routes/api.php
Route::group([
'prefix' => 'api'
],function() {
Route::get('resource', 'ApiController@getResource')->name('get-resource');
});
然后我使用jquery ajax对象来调用它
$.get( "api/resource", function( data ) {
//run somecode
});
如何解决这个问题,无论语言如何,我的api路由都能正确解析?我可以在路线中设置一些参数以防止这种情况发生吗?我一直在寻找documentation,但没有发现任何相关内容。
P.S。:我正在使用Mcmanamara Laravel Localization
答案 0 :(得分:0)
如果你使用查询字符串,恕我直言,设置语言环境会更好:即:
http://app-domain.com/api/resource?locale=en
两个有效的理由:
1)查询字符串中的语言环境也可能不存在,因此您可以回退到默认语言环境。
2)在路由中使用locale参数可能会与其他路由参数冲突,从而产生很多混淆