试图在laravel中设置并获取 session 。在我的 Controller 中,我正在将数组转换为字符串,如果打印该字符串不会抛出错误,但是如果遇到错误, session 似乎会获取数组而不是字符串。 Controller :
public function getQuestions(){
$questions = DB::table('questions')->orderBy(DB::raw('RAND()'))->get();
$questions= json_decode(json_encode($questions), true);
Session::put('questions', $questions);
return view('test', array('questions' => $questions));
}
刀:
{{ Session::get('questions') }}
一个错误:
htmlentities() expects parameter 1 to be string, array given
最佳答案
“问题”是对象的集合。您不能使用{{placeholder}}直接打印对象。每当您使用{{placeholder}} laravel Blade 引擎时,都假定它是字符串。因此它通过htmlentities函数传递了可变性。所以错误来了。如果确实需要打印此代码,则可以编写一个foreach循环。这是 sample
@foreach(Session::get('questions') as $question)
{{$question-> attribute _to_print}}
@endforeach
Blade tutorial
Blade {{}}语句通过PHP的htmlspecialchars函数自动发送,以防止XSS攻击。
关于laravel-5 - Laravel htmlentities()期望参数1为字符串,将其转换为字符串后给出的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51280330/