Изменить префикс группы маршрутов при изменении локали - PullRequest
0 голосов
/ 24 апреля 2019

Я хочу изменить префиксы группы маршрутов при изменении локали.

Например, если локаль en:

     Route::group(['prefix' => 'giveaway'], function () {

     });

, если локаль tr:

     Route::group(['prefix' => 'cekilis'], function () {

     });

Как мне это сделать.

Я пытался

   'prefix'=>__('routes.prefix')

Но приложение не может получить доступ к текущей локали в маршрутах.

1 Ответ

0 голосов
/ 24 апреля 2019

Я рекомендую вам использовать промежуточное ПО для установки языка как динамического

создать промежуточное ПО, как показано ниже:

namespace App\Http\Middleware;

use Closure;

class Language
{
    /**
    * Handle an incoming request.
    *
    * @param  \Illuminate\Http\Request  $request
    * @param  \Closure  $next
    * @return mixed
    */
    public function handle($request, Closure $next)
    {
        \App::setLocale($request->locale);

        return $next($request);
    }
}

И зарегистрировать это промежуточное ПО в приложении \ Http \ Kernel:

protected $middlewareGroups = [
    'web' => [
            // ...
            \App\Http\Middleware\Language::class,
            // ...
    ]
];

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

Route::middleware('language')->group(function ($locale) {

    //You have a condition as you wish

    if ($locale == 'en') {
        Route::group(['prefix' => 'giveaway'], function () {
        .......

        });
    } elseif ($locale == 'tr') {
        Route::group(['prefix' => 'cekilis'], function () {
        ........

        });
    }

});

Я надеюсь, что это решит вашу проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...