我正在開發具有以下雄辯車型Laravel雄辯模型如何從關係的表
- 產品的hasMany一個laravel應用數據( '應用/ SKU', 'products_id')
- SKU通過belongsTo( '應用/產品')
我有一個控制器 'ProductController的' 其中下面的代碼是可用的
public function index()
{
$products = Product::all();
foreach($products as $product){
$products_id = $product->products_id;
}
}
我公開了RESTfull API,它將允許我的用戶獲得所有產品詳細信息(包括skus,運輸類型等)。
想,如果我有一個API GET:/產品
其獲取所有的產品細節將代碼中的一些下面
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.
}
現在我的問題是什麼,是這個邏輯正確?在這種情況下,所有的邏輯都在控制器中,因爲我使用雄辯模型,每個表都有一個模型,並且關係在其中定義。有沒有一種方法可以讓我得到一個產品/相關模型的所有細節(產品的詳細信息(表1)+ SKU的詳細信息(表2)),而不是使用下面的
foreach($products as $product){
$products_id = $product->products_id;
$skus_data = Product::find($products_id)->skus;
}
我非常新的laravel發展和雄辯模型。我將使用存儲庫模式進行開發,在那種情況下,aboe邏輯(Product + Sku組合)駐留在哪裏。
請幫忙。
感謝您的詳細解答。我的答案還有一個問題,我的數據驗證發生在哪裏?它是否在控制器或存儲庫中,並且可以將庫作爲類似codeigniter的庫嗎? – Ajeesh
@ user34305:要驗證數據,您可以採用不同的方式進行驗證:在您的控制器,模型或使用特定類中,這取決於您的需求和偏好:選中[此處](http://laravel.com/ docs/5.1/validation)來獲取更多信息。對於codeigniter部分我不能幫助,因爲我不使用它:) – Moppo
謝謝你。我正在接受你的回答。 :) – Ajeesh