Php 尝试访问视图中的数组返回尝试获取非对象的属性
我使用的是Laravel5.2,我尝试执行一个存储过程,并使用foreach循环在视图中显示结果。当我运行我的应用程序时,我收到以下错误消息: 正在尝试获取非对象的属性 如果使用return或dump,则会得到以下结果: 这是我的控制器代码: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[
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
将不是数组,[]
语法将不起作用。需要使用->
访问器。谢谢!这是我的问题。谢谢!这是我的问题。