我正在开发一个 Laravel 应用程序,其中包含以下 Eloquent 模型:
- Product hasMany('App/Sku','products_id')
- Sku belongTO('App/Product')
我有一个名为“ProductController”的控制器,在其中可用以下代码:
public function index()
{
$products = Product::all();
foreach($products as $product){
$products_id = $product->products_id;
}
}
我正在公开RESTful API,允许我的用户获取所有产品详细信息(包括sku、运输类型等)。
假设我有一个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.
}
现在我的问题是,这个逻辑是否合适?在这种情况下,所有的逻辑都在控制器中,因为我使用的是Eloquent模型,我为每个表格都有一个模型,并且关系在其中定义。是否有一种方法可以获取产品/相关模型(表1中的产品细节+表2中的Sku细节)的所有细节,而不是使用以下方法:
foreach($products as $product){
$products_id = $product->products_id;
$skus_data = Product::find($products_id)->skus;
}
我对laravel开发和eloquent模型还比较陌生,将会使用存储库模式进行开发,在这种情况下,产品+SKU组合的逻辑应该放在哪里?
请给予帮助。