Префикс силы Laravel - PullRequest
       17

Префикс силы Laravel

2 голосов
/ 04 апреля 2019

В своем приложении я предоставил префикс, например, en, который мой сайт загружает как domain.xyz/en, теперь это работает, но мне нужно добавить:

принудительное перенаправление, когда пользователь посещает веб-сайты без префикса:

например. Пользователь пытается загрузить domain.xyz, этот домен должен перенаправить на domain.xyz/en ( префикс по умолчанию ) в первый раз для загрузки сайта, но позже, если пользователь выберет другой язык, он может быть установлен на это. Р.Г. domain.xyz/es

Вопрос

Что я должен написать в своем промежуточном программном обеспечении для достижения этого перенаправления?

Я пытался использовать:

1-$request->route().parameters();
and
2-$request->route().getPrefix();

не повезло.

code

<?php

namespace App\Http\Middleware;

use Closure;

class PrefixMiddleware
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        return $next($request);
    }
}

Обновление

Вот как выглядит мой web.php:

$route_prefix = \Config::get('app.route_prefix');
Route::group(['middleware' => 'verified', 'prefix' =>  $route_prefix.'/'], function () use ($route_prefix){
  Route::get('/', 'HomeController@welcome')->name('homepage');
});

Обновление 2

Теперь, основываясь на предложении комментариев, у меня есть что-то вроде:

public function handle($request, Closure $next)
    {
        $prefix = \Config::get('app.route_prefix');
        \App::setLocale($prefix);
        return $next($request.'/'.$prefix);
    }

и возвращается:

Call to a member function setUserResolver() on string

1 Ответ

0 голосов
/ 12 мая 2019

Решено

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

...