Я использую midllleware для переключения между языками английский и арабский
<?php
namespace App\Http\Middleware;
use Closure;
class ApplyLocale
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$segments = collect($request->segments());
$locale = $segments->first();
if (! in_array($locale, config('app.locales'))) {
$locale = 'ar';
app()->setLocale($locale);
$segments->prepend($locale);
return redirect($segments->implode('/'));
}
app()->setLocale($locale);
return $next($request);
}
}
, а в helper.php я использую это для переключения между
/**
* @return string
*/
function switchLocaleUrl()
{
$locale = config('app.locale');
if ($locale === 'ar') {
return '/en/' . collect(Request::segments())->splice(1)->implode('/');
}
return '/ar/' . collect(Request::segments())->splice(1)->implode('/');
}
, и я использую:
<li><a href="{{ switchLocaleUrl() }}"><i class="hvr-float-shadow"></i> {{ config('app.locale') === 'en' ? 'عربي' : 'ENGLISH' }}</a></li>
но когда я захожу на url localhost / myproject / ar, возникает ошибка 404 NOT FOUND