这个问题在这里已有答案:
我想从数据库中获取数据“report_to”。但是当我尝试在视图页面中打印变量时出现错误。据说“ErrorException htmlspecialchars()期望参数1是字符串,给定数组”。
这是我的控制器。
function editroledetails(Request $request)
{
$user = \Auth::user();
$userphone = 0;
$reportTo = DB::select(DB::raw("SELECT report_to FROM customer_type WHERE username='19331986' "));
$data = [
'editUsername' => $request->editUsername,
'editNik' => $request->editNik,
'editEmail' => $request->editEmail,
'editRegIdentities' => $request->editRegIdentities,
'editID' => $request->editID
];
return view('editroledetails', compact('user', 'userphone', 'data', 'reportTo'));
}
这是我的观点
<div class="alert alert-info">
<h3>{{$reportTo}}</h3>
</div>
我希望视图将显示变量“Name”,但我得到错误htmlspecialchars()期望参数1是字符串,给定数组。
更改
$reportTo = DB::select(DB::raw("SELECT report_to FROM customer_type WHERE username='19331986' "));
至
$reportTo = DB::select(DB::raw("SELECT report_to FROM customer_type WHERE username='19331986' "))->get();
现在$reportTo
是一个阵列,你可能需要使用@foreach
或@for
。或者,如果你确定你只会得到一个记录,你可以使用像first()
$reportTo = DB::select(DB::raw("SELECT report_to FROM customer_type WHERE username='19331986' "))->first();
这意味着很明显$ reportTo是查询的结果集,将您的查询更改为$reportTo = DB::select(DB::raw("SELECT report_to FROM customer_type WHERE username='19331986' "))->first();
然后访问您的数据库列,如$ reportTo ['colname']
你必须检查report_id是否为数组:
<div class="alert alert-info">
@if(is_array())
@foreach($reportTo as $rep_to)
<h3>{{$rep_to}}</h3>
@endforeach
@else
<h3>{{$reportTo}}</h3>
@endif
</div>
[求助]谢谢你的回答,我已经解决了。
这个代码
<?php echo $reportTo[0]->report_to; ?>