在PHP中,我已经理解双箭头(=>)与数组一起使用为键赋值,而对象运算符( - >)用于访问对象的属性(方法和变量) )。
请查看以下代码:
public function show() {
$items = Test::all();
return view('display'['item'=> $items]);
}
有人能解释一下双箭头(=>)运算符在这里做了什么以及在这种情况下它是如何实现的?
foreach($items as $item) {
echo $item->name;
}
根据定义,对象运算符( - >)的左侧必须是实例变量。那么这个算子在这里是如何适用的?
答案 0 :(得分:0)
当你在php脚本中定义$ Items变量时,你正在实例化一个php对象。接下来,在将对象推送到视图之前,将对象指定为数组[Item => object]中的值。在视图中,您现在可以通过使用它在foreach循环中的键[$ Item]作为$ Value调用它来访问该对象,然后从那里您可以访问,就像您通常在PHP脚本中那样,因为视图引擎。
从底线开始,您将对象传递给视图,这样您仍然可以使用模板引擎和Laravel框架在前端访问它的属性和方法。
答案 1 :(得分:0)
public function show()
{
// This returns an array of Item objects. In this case 'items' is
// probably a table in your database, so each Item object is a
// row in that table.
$Items = Item::all();
// give this array as 'Items' to the view (don't forget the comma here)
return view('display', ['Items' => $Items]);
}
在您的视图中,您应该使用相同的变量名称。 (我在此示例中使用刀片模板)
@foreach ($Items as $item):
{{ $item->ItemName }}
@endforeach