Php 尝试访问视图中的数组返回尝试获取非对象的属性

Php 尝试访问视图中的数组返回尝试获取非对象的属性,php,laravel,laravel-5,laravel-5.2,Php,Laravel,Laravel 5,Laravel 5.2,我使用的是Laravel5.2,我尝试执行一个存储过程,并使用foreach循环在视图中显示结果。当我运行我的应用程序时,我收到以下错误消息: 正在尝试获取非对象的属性 如果使用return或dump,则会得到以下结果: 这是我的控制器代码: public function VentasPorSucursal() { $values = [1, 25, 2, "NULL", "2018-08-10", "2018-08-10", "NULL", "NULL"]; $data[

我使用的是Laravel5.2,我尝试执行一个存储过程,并使用foreach循环在视图中显示结果。当我运行我的应用程序时,我收到以下错误消息:

正在尝试获取非对象的属性

如果使用return或dump,则会得到以下结果:

这是我的控制器代码:

public function VentasPorSucursal() {
    $values = [1, 25, 2, "NULL", "2018-08-10", "2018-08-10", "NULL", "NULL"];

    $data['data'] = DB::select('SP_RPT_VENTAS2 ?, ?, ?, ?, ?, ?, ?, ?', $values);

    //dump($data);
    return view('reportes.index')->with('data', $data);
}
这是我的index.blade.php

<div class="table-responsive">
        <table class="table table-striped table-bordered table-condensed table-hover">
            <thead>
                <th>Folio</th>
                <th>Fecha</th>
                <th>Sucursal</th>
                <th>Vendedor</th>
                <th>Cantidad</th>
                <th>Unidad</th>
                <th>Descripción</th>
                <th>Pzaz x Pq</th>
                <th>Precio</th>
                <th>Total</th>
                <th>Total Pzaz. Vendidas</th>
            </thead>
            @foreach ($data as $result)
                <tr>
                    <td>{{ $data->Folio }}</td>
                    <td>{{ $data->Fecha }}</td>
                    <td>{{ $data->Sucursal }}</td>
                    <td>{{ $data->Vendedor }}</td>
                    <td>{{ $data->Cantidad }}</td>
                    <td>{{ $data->Unidad }}</td>
                    <td>{{ $data->Descripcion }}</td>
                    <td>{{ $data->PzasxPq }}</td>
                    <td>{{ $data->Precio }}</td>
                    <td>{{ $data->Total }}</td>
                    <td>{{ $data->TotalPzasVendidas }}</td>
                </tr>

            @endforeach
        </table>
    </div>
    {{$data->render()}}

对开本
德国福查
成功的
卖方
康蒂达
尤尼达
描述
Pzaz x Pq
普里西奥
全部的
总Pzaz。文迪达斯
@foreach($数据作为$结果)
{{$data->Folio}
{{$data->Fecha}
{{$data->Sucursal}
{{$data->Vendedor}
{{$data->Cantidad}
{{$data->Unidad}
{{$data->description}
{{$data->PzasxPq}
{{$data->Precio}
{{$data->Total}
{{$data->TotalPzasVendidas}
@endforeach
{{$data->render()}
在寻找答案时,我发现使用“->”是针对数组的,可能我的代码将结果作为对象返回,我需要使用“[]”,但我不知道具体如何操作


可能是什么问题?

您的第一个问题是在
foreach
循环中,我重置的循环在下面,其次是 如果返回的结果是一个数组,它可以像下面这样访问

  @foreach ($data as $result)
            <tr>
                <td>{{ $result["Folio"]}}</td>
                <td>{{ $result["Fecha"] }}</td>
                <td>{{ $result["Sucursal"] }}</td>
                <td>{{ $result["Vendedor"] }}</td>
                <td>{{ $result["Cantidad"] }}</td>
                <td>{{ $result["Unidad"] }}</td>
                <td>{{ $result["Descripcion"] }}</td>
                <td>{{ $result["PzasxPq"] }}</td>
                <td>{{ $result["Precio"] }}</td>
                <td>{{ $result["Total"] }}</td>
                <td>{{ $result["TotalPzasVendidas"] }}</td>
            </tr>

        @endforeach
@foreach($data as$result)
{{$result[“Folio”]}
{{$result[“Fecha”]}
{{$result[“Sucursal”]}
{{$result[“卖方”]}
{{$result[“Cantidad”]}
{{$result[“Unidad”]}
{{$result[“description”]}
{{$result[“PzasxPq”]}
{{$result[“Precio”]}
{{$result[“Total”]}
{{$result[“TotalPzasVendidas”]}
@endforeach

您的第一个问题是在
foreach
循环中,我在下面重置了该循环,第二个是 如果返回的结果是一个数组,它可以像下面这样访问

  @foreach ($data as $result)
            <tr>
                <td>{{ $result["Folio"]}}</td>
                <td>{{ $result["Fecha"] }}</td>
                <td>{{ $result["Sucursal"] }}</td>
                <td>{{ $result["Vendedor"] }}</td>
                <td>{{ $result["Cantidad"] }}</td>
                <td>{{ $result["Unidad"] }}</td>
                <td>{{ $result["Descripcion"] }}</td>
                <td>{{ $result["PzasxPq"] }}</td>
                <td>{{ $result["Precio"] }}</td>
                <td>{{ $result["Total"] }}</td>
                <td>{{ $result["TotalPzasVendidas"] }}</td>
            </tr>

        @endforeach
@foreach($data as$result)
{{$result[“Folio”]}
{{$result[“Fecha”]}
{{$result[“Sucursal”]}
{{$result[“卖方”]}
{{$result[“Cantidad”]}
{{$result[“Unidad”]}
{{$result[“description”]}
{{$result[“PzasxPq”]}
{{$result[“Precio”]}
{{$result[“Total”]}
{{$result[“TotalPzasVendidas”]}
@endforeach

查看转储结果。传递给视图的数据数组包含一个
数据
键,该键包含从查询返回的所有对象。因此,您可以通过如下方式循环数据变量数据对象:

@foreach ($data['data'] as $result)
<tr>
   <td>{{ $result->Folio }}</td>
   <td>{{ $result->Fecha }}</td>
   <td>{{ $result->Sucursal }}</td>
   <td>{{ $result->Vendedor }}</td>
   <td>{{ $result->Cantidad }}</td>
   <td>{{ $result->Unidad }}</td>
   <td>{{ $result->Descripcion }}</td>
   <td>{{ $result->PzasxPq }}</td>
   <td>{{ $result->Precio }}</td>
   <td>{{ $result->Total }}</td>
   <td>{{ $result->TotalPzasVendidas }}</td>
</tr>
@endforeach
@foreach($data['data']as$result)
{{$result->Folio}
{{$result->Fecha}
{{$result->Sucursal}
{{$result->Vendedor}
{{$result->Cantidad}
{{$result->Unidad}
{{$result->description}
{{$result->PzasxPq}
{{$result->Precio}
{{$result->Total}
{{$result->TotalPzasVendidas}
@endforeach

查看转储结果。传递给视图的数据数组包含一个
数据
键,该键包含从查询返回的所有对象。因此,您可以通过如下方式循环数据变量数据对象:

@foreach ($data['data'] as $result)
<tr>
   <td>{{ $result->Folio }}</td>
   <td>{{ $result->Fecha }}</td>
   <td>{{ $result->Sucursal }}</td>
   <td>{{ $result->Vendedor }}</td>
   <td>{{ $result->Cantidad }}</td>
   <td>{{ $result->Unidad }}</td>
   <td>{{ $result->Descripcion }}</td>
   <td>{{ $result->PzasxPq }}</td>
   <td>{{ $result->Precio }}</td>
   <td>{{ $result->Total }}</td>
   <td>{{ $result->TotalPzasVendidas }}</td>
</tr>
@endforeach
@foreach($data['data']as$result)
{{$result->Folio}
{{$result->Fecha}
{{$result->Sucursal}
{{$result->Vendedor}
{{$result->Cantidad}
{{$result->Unidad}
{{$result->description}
{{$result->PzasxPq}
{{$result->Precio}
{{$result->Total}
{{$result->TotalPzasVendidas}
@endforeach

FYI:If the field is missing更易于使用
array_-get('Cantidad')
您所说的field missing是什么意思。抱歉,如果没有得到您想要的内容,请澄清。@jycr753 array_-get()array_-get函数使用“dot”符号从深度嵌套的数组中检索值:$array=['products'=>['desk'=>['price'=>100]]$price=array_get($array,'products.desk.price');参考:我无法测试您的代码,但无法访问数组中的数据。请查看我的答案。您的
@foreach
已关闭;您希望循环
$data[“data”]
,而不仅仅是
$data
。另外,
$data[“data”]
是一个包含
stdClass
对象的数组,因此
$result
不会是数组,
[]
语法也不会起作用。需要使用
->
访问器。仅供参考:如果缺少字段,则更容易使用
array\u get('Cantidad')
您所说的字段缺少是什么意思。很抱歉,如果没有得到您想要的内容,请澄清。@jycr753 array\u get()array\u get函数使用“点”符号从深度嵌套的数组中检索值:$array=['products'=>['desk'=>['price'=>100]];$price=array_-get($array,'products.desk.price');参考:我无法测试您的代码,但无法访问数组中的数据。请查看我的答案。您的
@foreach
已关闭;您希望循环
$data[“data”]
,而不仅仅是
$data
。此外,
$data[“data”]
是一个包含
stdClass
对象的数组,因此
$result
将不是数组,
[]
语法将不起作用。需要使用
->
访问器。谢谢!这是我的问题。谢谢!这是我的问题。