Created
March 29, 2020 07:17
-
-
Save waska14/43b4a7b345eeff6d40d3195ad64e5e34 to your computer and use it in GitHub Desktop.
Laravel - locale prefix
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace App\Http\Middleware; | |
use Closure; | |
class Language | |
{ | |
public function handle($request, Closure $next) | |
{ | |
$locale = $request->segment(1); | |
if (in_array($locale, array_keys(config('app.locales')))) { | |
app()->setLocale($locale); | |
return $next($request)->withCookie(cookie()->forever('locale', $locale)); | |
} | |
$query = implode("/", request()->segments()); | |
$locale = $request->cookie('locale') ?: app()->getLocale(); | |
return redirect($locale . "/" . $query); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
protected function mapWebRoutes() | |
{ | |
$locale = request()->segment(1); | |
$routeGroup = [ | |
'middleware' => ['App\Http\Middleware\Language', 'web'], | |
'namespace' => $this->namespace, | |
]; | |
if (in_array($locale, array_keys(config('app.locales')))) { | |
app()->setLocale($locale); | |
$routeGroup['prefix'] = $locale; | |
} | |
Route::group($routeGroup, function ($router) { | |
require base_path('routes/web.php'); | |
}); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
use Illuminate\Support\Facades\Route; | |
Route::get('/', function () { | |
dd('root'); | |
}); | |
Route::get('test', function () { | |
dd('test'); | |
}); | |
Route::group(['prefix' => 'gela'], function () { | |
Route::get('test', function () { | |
dd('getla/test'); | |
}); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment