【问题标题】:Laravel Localization prefix - URl "/" not working without localeLaravel 本地化前缀 - URl“/”在没有语言环境的情况下不起作用
【发布时间】:2016-10-20 17:53:34
【问题描述】:

我已经完成了this post 中所写的内容,以便为我的 URL 添加本地化前缀。但是当我访问“/”时出现错误:NotFoundHttpException in RouteCollection.php line 161:

这是我的路由文件web.php

Route::get('/', ['uses' => 'MainController@showMainPage', 'as' => 'showMainPage']);

Route::group(['prefix' => 'backend'], function () {
    Route::get('/login', ['uses' => 'UserController@agentLogin', 'as' => 'agentLogin']);
});

功能:

class MainController extends Controller
{
    public function showMainPage()
    {
        return redirect()->route('/fr');
    }
}

localhost:8000/frlocalhost:8000/en 工作正常。

如何将/ 重定向到备用语言环境 (/fr)?

【问题讨论】:

    标签: laravel localization


    【解决方案1】:

    您可以尝试将 lang 参数设为可选:

    'prefix' => '{lang?}'
    

    【讨论】:

    • 是的,这会将我重定向到 /fr,但是由于重定向过多,页面会中止。我知道为什么,但不知道如何解决这个问题
    • @Scarwolf 那么 url localhost:8000/fr 呢?它工作正常吗?只有localhost:8000 会导致重定向过多?
    • 糟糕,不得不将重定向交换到route()。现在可以正常使用了,谢谢!
    • 当我在localhost:8000 没有/fr 时,我的路由链接在url 中显示为/en,即使我将后备语言环境设置为fr。你知道为什么吗?像这样链接我的路线:{{ route('agentLogin') }}web.php 中的路由:` Route::get('/login', ['uses' => 'UserController@agentLogin', 'as' => 'agentLogin']);` 即使在带有/fr 的页面上它在链接上显示/en。在使语言变量可选之前工作
    • 这个麻烦你决定了吗?你在app.php 中有什么'locale' => 参数?
    猜你喜欢
    • 1970-01-01
    • 2017-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多