Я разрабатываю приложение laravel, которое имеет следующие красноречивые модели
- Продукт hasMany ('App/Sku', 'products_id')
- Sku принадлежитTO ('App/Product')
У меня есть контроллер ProductController, где доступен следующий код
public function index()
{
$products = Product::all();
foreach($products as $product){
$products_id = $product->products_id;
}
}
Я просматриваю RESTfull API, который позволит моим пользователям получать всю информацию о продукте (включая skus, типы доставки и т.д.).
Предположим, что у меня есть API GET: /products
Код, который извлекает все детали продукта, будет следующим:
public function index()
{
$products = Product::all();
foreach($products as $product){
$products_id = $product->products_id;
$skus_data = Product::find($products_id)->skus;
}
// Now I have both the product details + skus which I can bundle into an array/json.
}
Теперь мой вопрос: правильно ли эта логика? В этом случае все логики находятся в контроллере, поскольку im использует красноречивые модели. У меня есть модель для каждой таблицы, и в ней определены отношения. Есть ли способ получить все детали продукта/связанной модели (Детали продуктов (в таблице 1) + Детали Sku (в таблице 2)), а не использовать ниже
foreach($products as $product){
$products_id = $product->products_id;
$skus_data = Product::find($products_id)->skus;
}
Я новичок в разработке laravel и красноречивых моделях. Я буду использовать шаблон репозитория для разработки, и в этом случае будет существовать логика aboe (Product + Sku combining).
Пожалуйста, помогите.