2017-01-06 2 views
0

Я использую хелперныйКак я могу изменить язык ошибок в Laravel 5.1 динамически

приложения() -> Setlocale (сессия («языки»));

Однако, я могу изменить языки взглядов, но языки ошибок все еще продолжает чтение

\ Config \ app.php локали => 'ы'

Это означает, что всегда показывать один и тот же язык.

Как я могу изменить его также динамически?

enter image description here

Проблема в том, что частичный вид, что печатает ошибку всегда печатается на том же языке.

Вот код, который у меня есть.

\ Resources \ вид \ layout.blade.php

@lang('messages.project') 
<ul class="nav navbar-nav navbar-right"> 
    <li><a href="{{ url('lang', ['en']) }}">En</a></li> 
    <li><a href="{{ url('lang', ['es']) }}">Es</a></li> 
</ul> 

\ приложение \ Http \ routes.php

Route::get('lang/{lang}', '[email protected]')->where([ 'lang' => 'en|es']); 

Route::group(['middleware' => ['web']], function() { 
Route::get('notes', '[email protected]'); 
Route::get('notes/create', '[email protected]'); 
}); 

\ приложение \ Http \ Контроллеры \ NotesController. php

public function changeLang($lang) 
{ 
    session(['lang' => $lang]); 
    return Redirect::back(); 
} 

\ приложение \ Http \ Middleware \ LangMiddleware.php

public function handle($request, Closure $next) 
{ 
    if (!empty(session('lang'))) { 
    app()->setLocale(session('lang')); 
    } 
    return $next($request); 
} 

\ ресурсы \ Views \ обертоны \ errors.blade.php

<ul> 
    @foreach($errors->all() as $error) 
     <li>{{ $error }}</li> 
    @endforeach 
</ul> 
+0

Как вы относитесь к *** dynamic **? Вы имеете в виду без перезагрузки страницы с помощью XMLHttpRequest, что-то еще? Пожалуйста, определите параметры этого изменения. – Nicholas

+0

Привет, Николас. Речь идет не о запросе Ajax. У меня есть две ссылки: routes.php Route :: get ('lang/{lang}', 'NotesController @ changeLang') -> где (['lang' => 'en | es']); – juanmiguel431

+0

Ни скриншот, ни код не показывают, где происходит изменение локали. Кроме того, ваш вопрос не объясняет, где в коде или приложении вы хотите изменить локаль. – Nicholas

ответ

0

Раствор помещали промежуточное в файл Приложение \ Http \ Kernel.php в разделе защищено $ middleware = [], потому что я только что добавил в раздел «protected $ routeMiddleware»

\App\Http\Middleware\VerifyCsrfToken::class, 
    \App\Http\Middleware\myNewMiddleware::class,   
];