Laravel本地化包在POST请求上抛出MethodNotAllowedHttpException

时间:2017-08-10 10:56:39

标签: php laravel

我使用此软件包进行本地化https://github.com/mcamara/laravel-localization,除了一个POST请求外,它在大多数情况下都能正常工作。

当我尝试访问时:

Route::group(
    [
        'prefix'     => LaravelLocalization::setLocale(),
        'middleware' => ['localeSessionRedirect', 'localizationRedirect', 'auth'],
    ],
    function () {
    Route::post('bsSearch', 'BrandSpendingsController@search')->middleware('premium');
}

我得到MethodNotAllowedHttpException ...当我将其切换到GET时,它运行正常......但它适用于英语。如果我将网址切换为http://localhost/de/bsSearch,则会引发错误。

Route::get('bsSearch', 'BrandSpendingsController@search')->middleware('premium');

我真的不确定为什么因为这个工作正常而且它也是POST方法:

Route::post('editUserProfile/{id}', 'UserController@edit');

我使用的是Laravel 5.3。

修改

英文网址有效,因为我在'hideDefaultLocaleInURL' => true,中设置laravellocalization.php,并在网址中隐藏了“en”前缀。如果我将其设置为false,它也会导致英语错误。

1 个答案:

答案 0 :(得分:-1)

Here是一个答案

  1. 最好将GET路由本地化,方法是将它们放置在本地化组中,而不要再放置其他路由
  2. 如果您需要本地化其他方法,例如POST,PUT,PATCH,DELETE,则应按照here
  3. 来本地化您的网址