ErrorException htmlspecialchars()期望参数1为字符串,给定[duplicate]数组

问题描述 投票:0回答:4

我想从数据库中获取数据“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是字符串,给定数组。

php laravel laravel-5.4
4个回答
0
投票

更改

$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();

0
投票

这意味着很明显$ reportTo是查询的结果集,将您的查询更改为$reportTo = DB::select(DB::raw("SELECT report_to FROM customer_type WHERE username='19331986' "))->first();然后访问您的数据库列,如$ reportTo ['colname']


0
投票

你必须检查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>

0
投票

[求助]谢谢你的回答,我已经解决了。

这个代码

<?php echo $reportTo[0]->report_to; ?>

This is print_r of $reportTo

This is my reference

© www.soinside.com 2019 - 2024. All rights reserved.