What I'm trying to do is to get a property of the deepest hierarchy of Eloquent Relations in a nested ng-repeat
.
Here is the relationship.
Order ..hasMany.. SubItems ..belongTo.. Product
There is a model Order
, which hasMany
model SubItems
. This SubItems
model belongsTo
a model Product
.
I have an array of Order
, and I'd like to access the relevant Product
with ng-repeat
from the each Order
object.
<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>
The second level of the relationship (SubItems
) can be accessed by putting a .
, but apparently I need to use a different way to access the third level (Product
).
I'd appreciate if you'd give any advice.
Additional information
When I use Laravel's foreach loop, this can be accessed by...
{{$subItem->product->name}} //This works fine!
The controller method is...
public function getOrders()
{
$orders = $this->order->with('customer', 'subitems')->orderBy('id', 'desc')->get();
return $orders;
}