Yapmaya çalıştığım şey, iç içe geçmiş bir ng-repeat
içersinde Eloquent Relations'ın en hiyerarşisine sahip olmaktır.Angularjs + Laravel: İç içe geçmeli yinelenen yinelemeli ilişkilerde özelliklerini döndürme
İşte ilişki.
Order ..hasMany.. SubItems ..belongTo.. Product
model Order
, hasMany
modeli SubItems
yoktur. Bu SubItems
model belongsTo
model Product
.
Ben Order
dizisi var ve her Order
nesneden ng-repeat
ile ilgili Product
erişmek istiyorum.
<table>
<tbody ng-repeat="order in tc.orders" >//I use "as" syntax, so I use "tc."here
<tr ng-click="tc.showOrderDetail(order.id)">
<td ng-bind="order.id"></td>
<!-- "order.id" works in both lines -->
</tr>
<tr ng-repeat="subItem in order.subItems">
<td ng-bind="subItem.price"></td>
<!-- This "subItem.price" appears -->
<td ng-bind="subItem.product.name"></td>
<!-- This "subItem.product.name" doesn't appear -->
</tr>
</tbody>
</table>
ilişki (SubItems
) ikinci katmanı .
koyarak ulaşılabilir ama görünüşe göre, üçüncü düzey (Product
) erişim için farklı bir yol kullanmak gerekir.
Herhangi bir tavsiyede bulunursanız memnun olurum. Ben laravel en foreach döngüsü kullandığınızda, bundan ... ulaşılabilir
bilgiye
{{$subItem->product->name}} //This works fine!
kontrolör yöntemidir ...
public function getOrders()
{
$orders = $this->order->with('customer', 'subitems')->orderBy('id', 'desc')->get();
return $orders;
}
Lütfen denetleyici kodunuzu ekleyin. '' Ürün' 'subItem' modelinize yüklenmemelidir, bu yüzden kontrol cihazınızı görebilmeniz için – Jeff
yardım etmelisiniz Jeff. Ekledim İster inanın ister inanmayın, Laravel'in forloop'unu kullandığımda hiçbir hata yaşanmadı ve 'ürün '' subitem 'ile ilişkiliydi. – Hiroki
'$ subItem-> product' öğesini çağırdığınızda, otomatik olarak sizin için yükler. JSON formunda görünmesini istiyorsanız elle yüklemek zorundasınız – Jeff