Php 试图获得财产';id';laravel 5.6中非对象的定义
你好,我想知道我做错了什么,我得到了这个错误这里是我的控制器和视图Php 试图获得财产';id';laravel 5.6中非对象的定义,php,laravel,object,Php,Laravel,Object,你好,我想知道我做错了什么,我得到了这个错误这里是我的控制器和视图 $invoice_specs = invoice::find($id); $view=view('admin.invoices.pdf',compact('invoice_specs',$invoice_specs)); 这就是我的观点 <table class="table "> <thead> <tr>
$invoice_specs = invoice::find($id);
$view=view('admin.invoices.pdf',compact('invoice_specs',$invoice_specs));
这就是我的观点
<table class="table ">
<thead>
<tr>
<th>id</th>
<th>name</th>
<th>description</th>
</tr>
</thead>
<tbody>
@foreach($invoice_specs as $invoice_spec)
<tr>
<td>{{$invoice_spec->id}}</td>
<td>{{$invoice_spec->title}}</td>
<td>{{$invoice_spec->description}}</td>
</tr>
@endforeach
</tbody>
</table>
问题在于,为从数据库检索数据而调用的静态find方法只返回单个模型,而不是集合。因此,在您看来,当您尝试将foreach与变量
$invoice\u specs
一起使用时,它实际上不会在模型集合中循环
在中,您可以看到find
和first
方法只返回一个模型,您无法将其用于foreach循环
说明如何检索模型以及如何使用模型。我建议你先读一读:)
因此,当前如果要显示单个模型,可以做的是在视图中去掉
foreach
循环,并在控制器中将变量invoice\u specs
重命名为invoice\u spec
问题在于,您调用的静态find方法从数据库检索数据,仅返回单个模型,不返回集合。因此,在您看来,当您尝试将foreach与变量$invoice\u specs
一起使用时,它实际上不会在模型集合中循环
在中,您可以看到find
和first
方法只返回一个模型,您无法将其用于foreach循环
说明如何检索模型以及如何使用模型。我建议你先读一读:)
因此,当前,如果要显示单个模型,可以做的是在视图中去掉
foreach
循环,并且在控制器中,您应该将变量invoice\u specs
重命名为invoice\u spec
您的invoice\u specs
是单个模型,您可能不想使用foreach
对其进行迭代,您可以直接尝试访问invoice\u specs
上的id
属性
但是,您似乎想要查找多个发票,但您使用的是find()
通过primary key
查找,在这种情况下,您只能得到一个或没有结果
请澄清您的问题。您的
发票规格
是一个单一型号,您可能不想使用foreach
对其进行迭代,您只需尝试直接访问发票规格
上的id
属性即可
但是,您似乎想要查找多个发票,但您使用的是find()
通过primary key
查找,在这种情况下,您只能得到一个或没有结果
请为您的问题提供更清晰的说明。您不应该在这里重复结果。您应该在HTML中这样做
<table class="table ">
<thead>
<tr>
<th>id</th>
<th>name</th>
<th>description</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{$invoice_specs->id}}</td>
<td>{{$invoice_specs->title}}</td>
<td>{{$invoice_specs->description}}</td>
</tr>
</tbody>
</table>
身份证件
名称
描述
{{$invoice_specs->id}
{{$invoice_specs->title}
{{$invoice_specs->description}
您不应在此处迭代结果。您应该在HTML中这样做
<table class="table ">
<thead>
<tr>
<th>id</th>
<th>name</th>
<th>description</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{$invoice_specs->id}}</td>
<td>{{$invoice_specs->title}}</td>
<td>{{$invoice_specs->description}}</td>
</tr>
</tbody>
</table>
身份证件
名称
描述
{{$invoice_specs->id}
{{$invoice_specs->title}
{{$invoice_specs->description}
不要在那里使用foreach
循环,它不是一个集合。
直接使用$invoice\u spec->id
。就这样
我们使用
foreach
或forelse
作为集合。不要在那里使用foreach
循环,它不是集合。
直接使用$invoice\u spec->id
。就这样
我们使用
foreach
或forelse
进行收藏。我建议不要使用find($id)
而使用findOrFail($id)
作为一般经验法则,我建议不要使用find($id)
而使用findOrFail($id)
作为一般经验法则