• Как поменять язык в laravel?

    @halenharper
    Мне стандартный способ Laravel не понравился.
    Надо писать фильтр, функцию, роут, меню.
    Решил использовать Laravel Localization
    Все подробно описано, все функции написаны. Просто вставить.

    Но если интересно, то вот как работало стандартными средствами:
    Middleware:
    public function handle($request, Closure $next)
        {
            $language = Request::cookie('lang', Config::get('app.locale'));
    
            App::setLocale($language);
    
            return $next($request);
        }


    Route:
    Route::group([ 'middleware' => ['maintenance_mode', 'locale']], function()
    {
        //Change language
        Route::get('set_lang/{id}', ['as' => 'set_lang', 'uses' => 'HomeController@set_lang']);
    }


    Controller:
    public function set_lang($id){
            $response = new \Illuminate\Http\Response('Set Lang');
            return $response->withCookie(cookie()->forever('lang', $id));
        }

    Само меню переключения во View:
    <li class="dropdown">
                        <a class="dropdown-toggle" data-toggle="dropdown" href="#">
                            {{ trans('main.'.config('app.locales')[Config::get('app.locale')]) }} <i class="fa fa-caret-down"></i>
                        </a>
                        <ul class="dropdown-menu dropdown-langs">
                            @foreach(config('app.locales') as $k=>$val)
                                @if(config('app.locale') != $k)
                                    <li><a href="{{ route('set_lang', ['id' = $k]) }}"> {{ trans('main.'.$val) }}</a></li>
                                @endif
                            @endforeach
                        </ul>
                        <!-- /.dropdown-user -->
                    </li>
    Ответ написан
    Комментировать
  • Как автоматически запускать миграции laravel в docker?

    karabanov
    @karabanov Куратор тега Docker
    Системный администратор
    Напиши скрипт, который будет делать всё необходимое и добавь его в Dockerfile в качестве ENTRYPOINT

    Ещё ENTRYPOINT можно переопределять в момент запуска контейнера, так что необязательно собирать кастомный образ.
    Ответ написан
    Комментировать