我尝试获取languages.php在我的配置文件夹中提供的语言列表,我收到此错误
htmlspecialchars() expects parameter 1 to be string, array given (View: C:\laragon\www\newproject\resources\views\layouts\panel.blade.php) (View: C:\laragon\www\newproject\resources\views\layouts\panel.blade.php)
这是我的languages.php
return [
'en' => [
'name' => 'English',
'flag' => 'images/flags/en.png'
],
'fa' => [
'name' => 'پارسی',
'flag' => 'images/flags/iran.png'
],
];
我的中间件Language.php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Foundation\Application;
use Illuminate\Http\Request;
use Illuminate\Routing\Redirector;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\Session;
class Language
{
public function handle($request, Closure $next)
{
if (Session::has('applocale') AND array_key_exists(Session::get('applocale'), Config::get('languages'))) {
App::setLocale(Session::get('applocale'));
}
else { // This is optional as Laravel will automatically set the fallback language if there is none specified
App::setLocale(Config::get('app.fallback_locale'));
}
return $next($request);
}
}
LanguageController
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Config;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Session;
class LanguageController extends Controller
{
public function index($lang)
{
if (array_key_exists($lang, Config::get('languages'))) {
Session::put('applocale', $lang);
}
return Redirect::back();
}
}
路线
Route::get('lang/{lang}', ['as'=>'lang.switch', 'uses'=>'LanguageController@index']);
最后我的观点
{{ Config::get('languages') }}
@foreach (Config::get('languages') as $lang => $language)
@if ($lang != App::getLocale())
@endif
@endforeach
在尝试从配置文件夹获取 languages.php 中定义的语言列表时,遇到了 htmlspecialchars() 函数预期参数错误。问题出现在试图将数组传递给期望字符串的函数。这个问题可能与视图文件 panel.blade.php 中的模板语法有关。解决方案可能涉及检查并修正 Blade 视图中对 Config::get('languages') 的使用,确保传递给 htmlspecialchars() 的参数是字符串。
3232

被折叠的 条评论
为什么被折叠?



