试图在 Laravel 中设置和获取会话。在我的控制器中,我将数组转换为字符串,如果打印不会引发错误,但是从错误看来,会话正在获取数组而不是字符串。控制器:
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}} 直接打印 objected。每当您使用 {{ placeholder}} laravel 刀片引擎时,都假定它是一个字符串。因此它通过 htmlentities 函数传递该变量。所以错误来了。如果你真的需要打印这个,你可以写一个 foreach 循环。这是示例
@foreach(Session::get('questions') as $question)
{{$question-> attribute _to_print}}
@endforeach
Blade {{ }} 语句通过 PHP 的 htmlspecialchars 函数自动发送,以防止 XSS 攻击。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句