2015-08-20 6 views
0

В Laravel у меня есть API, созданный таким образом, что/products показывает все продукты в формате JSON, и это отлично работает. Каждый продукт имеет и может иметь много акций. На складе указано количество продукта, которое у нас есть, и размер продукта. Таким образом, каждый продукт может иметь несколько акций, например, они могут иметь 4 одного размера, 5 других.Получение результата из его hasMany отношений в AngularJS и Laravel?

Я только что ударил кирпичную стену в своем AngularJS, где я пытаюсь получить все продукты, в которых продукт содержит запас (который настроен как отношения в Laravel, hasMany, а таблица запасов имеет product_id колонка). Я действительно не могу понять, как это сделать в Angular. Любая помощь в правильном направлении была бы замечательной!

+0

Вы что-то пробовали: Продукты :: с («запасы») -> get() [http://laravel.com/docs/5.1/eloquent-relationships]? Таким образом, у вашей коллекции есть связанные с ней запасы ... Возможно, вам также захочется взглянуть на загруженную загрузку. Надеюсь, я мог бы получить вам подсказку :) – ThatMSG

+0

Ух ты, я думаю, ты только что решил мою проблему! Большое спасибо, я был над этими документами, и я думаю, я, должно быть, пропустил это! – bin0

ответ

1

Я не совсем уверен, как это сделать в AngularJS, но если вы будете делать это в Laravel образом

Определить в вашем ProductsModel

public function stocks(){ 
    return $this->hasMany('StocksModel','product_id','id'); 
} 

public function getProductsWithStocks(){ 
    return ProductsModel::with('stocks')->get(); 
} 

и в контроллере

$products = ProductsModel::getProductsWithStocks(); 

//return the view 
return View::make('product.stock', ['products' => $products]); 

Тогда на вашем товарном складе

@foreach($products as $product) 
Product Name:{{$product->name}} 
@if($product->stocks) //check if there is stock 
    @foreach($product->stocks as $stock) 
    Size {{$stock->size}} has {{$stock->quantity}} left 
    @endforeach 
@endif 
@endforeach