Laravel 5.5多语言应用程序

时间:2017-09-26 10:39:46

标签: php laravel laravel-5

我关注如何使您的网站成为多语言this article。 但是我不明白为什么当我冲浪到hoemstead.app/lang/en时总是会出错。

错误:

  

抱歉,您要查找的页面不存在

我的语言控制器

use Config;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Session;


class LanguageController extends Controller
{
    public function switchLang($lang)
    {
        if (array_key_exists($lang, Config::get('languages'))) {
            Session::put('applocale', $lang);
        }
        return Redirect::back();
    }
}

我的路线:

Route::get('lang/{lang}', ['as'=>'lang.switch', 'uses'=>'LanguageController@switchLang']);

我的语言中间件

use Closure;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\Session;

class Language
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (Session::has('applocale') AND array_key_exists(Session::get('applocale'), Config::get('languages'))) {
            App::setLocale(Session::get('applocale'));
        }

        return $next($request);
    }
}

我还将此中间件添加到我的Kernel.php文件

配置文件夹中的My Languages.php文件

return [
    'en' => 'English',
    'nl' => 'Nederlands',
    'fr' => 'Français',
];

0 个答案:

没有答案