我正在尝试在刀片.php文件中显示数据库中的数据,但收到此错误"Trying to get property 'name' of non-object"


<div class="nieuws2">
@foreach($product as $product)
<div class="nieuwsber bericht{{$product->id}}">
<h2>{{$product->name}}</h2>
<img src="{{$product->image}}">
<span>€{{$product->price}}</span>
</div>
@endforeach
</div>
<form class="saleform" method="post" action="sale">
<h2>Plaats je bestelling</h2>
@csrf
<label for="name">Naam (voornaam + achternaam)</label><br>
<input type="text" id="name" name="name"><br><br>
<label for="adres">adres (straat + nr + postcode + gemeente)</label><br>
<input type="text" id="adres" name="adres"><br><br>
@foreach ($product as $product)
<label for="{{$product->name}}">{{$product->name}}</label><br>
<input type="number" id="{{$product->name}}" name="{{$product->name}}" value="0"><br><br>
<input type="hidden" id="price" name="price" value="{{$product->price}}">
@endforeach
<input type="submit">
</form>

第一个@foreach工作得很好,它做了它需要做的。但后来我试着在同一个刀片文件中再做一次,由于某种原因它不起作用。它应该做的是遍历每个产品并将其作为一个数字输入,以便客户可以在其订单中添加x-amount。

我的控制器是这样的:

public function index(){
$product = product::get();
return view ('pages.verkoop', [
'product' => $product
]);

通过让循环名称为变量$product(foreach ($product as $product))来覆盖$product的值。对于要迭代的内容,应该使用不同的变量名,对于要执行的操作,应该使用循环的当前值:

foreach ($products as $product)

将集合重命名为$products将是一个简单的修复。现在,通过让循环设置$product变量,您不会覆盖$products

好的,显然您不能在一个blade文件中对同一个对象进行两次foreach循环。我通过将控制器更改为

来修复它
public function index(){
$product = product::get();
$product2 = product::get();
return view ('pages.verkoop', [
'product' => $product,
'product2' => $product2,
]);
}

并将blade.php更改为:

<div class="nieuws2">
@foreach($product as $product)
<div class="nieuwsber bericht{{$product->id}}">
<h2>{{$product->name}}</h2>
<img src="{{$product->image}}">
<span>€{{$product->price}}</span>
</div>
@endforeach
</div>
<form class="saleform" method="post" action="sale">
<h2>Plaats je bestelling</h2>
@csrf
<label for="name">Naam (voornaam + achternaam)</label><br>
<input type="text" id="name" name="name"><br><br>
<label for="adres">adres (straat + nr + postcode + gemeente)</label><br>
<input type="text" id="adres" name="adres"><br><br>
@foreach ($product2 as $product2)
<label for="{{$product2->name}}">{{$product2->name}}</label><br>
<input type="number" id="{{$product2->name}}" name="{{$product2->name}}" value="0"><br><br>
<input type="hidden" id="price" name="price" value="{{$product2->price}}">
@endforeach
<input type="submit">
</form>

所以这是一件奇怪的事。有人知道为什么吗?

相关内容

最新更新