Php 为使用子域作为语言指示符的foreach()laravel 6提供的参数无效
我对Laravel和PHP非常陌生,只是尝试使用子域作为语言指示器向我的Laravel网站添加额外的语言 但获取一个错误,该错误表示“为foreach()提供的参数无效” 我做错了什么 index.blade.phpPhp 为使用子域作为语言指示符的foreach()laravel 6提供的参数无效,php,laravel,Php,Laravel,我对Laravel和PHP非常陌生,只是尝试使用子域作为语言指示器向我的Laravel网站添加额外的语言 但获取一个错误,该错误表示“为foreach()提供的参数无效” 我做错了什么 index.blade.php <div class="languages"> @foreach(config()->get('app.locales') as $code => $lang) &
<div class="languages">
@foreach(config()->get('app.locales') as $code => $lang)
<a href="http://{{$code}}.localhost">{{ $lang }}</a>
@endforeach
</div>
public function handle($request, Closure $next){
// get the subdomain if exists
$urlArray = explode('.', parse_url($request->url(), PHP_URL_HOST));
if (count($urlArray) < 3){
return $next($request);
}
$subdomain = $urlArray[0];
// if it's the default language: redirect to URL without subdomain
if ($subdomain == 'en'){
$baseUrl = str_replace('//en.', '//', $request->url());
return redirect()->to($baseUrl);
}
// if it's a valid language, set as locale and set time zone
if ( array_key_exists($subdomain, config()->get('app.locales')) ){
\App::setLocale($subdomain);
setlocale(LC_TIME, $subdomain);
}
return $next($request);
}
'locale' => 'en',
'locales' => [
'en' => 'English',
'de' => 'Deutsch',
'es' => 'Español'
],
您是否在foreach循环中尝试了“Config::get('app.locales')”而不是“Config()->get('app.locales')”?在
php artisan tinker
中,执行Config()->get('app.locales')
。看看它是否在吐出一个数组。您可能只需要一个php artisan config:clear
来清除配置缓存。是的,它工作了“php artisan config:clear”您救了我一命,非常感谢,所以第6级文档建议如下:config('app.locales')代码>