ich eine Laravel Anwendung entwickle, die folgende eloquent Modelle hatLaravel eloquent Modell, wie Daten von Beziehung erhalten Tisch
- Produkt hasMany ('App/Sku', 'products_id')
- sku belongTO ('App/Produkt')
ich habe einen Controller 'Product', wo der folgende Code verfügbar ist
public function index()
{
$products = Product::all();
foreach($products as $product){
$products_id = $product->products_id;
}
}
Ich stelle RESTfull-API zur Verfügung, die es meinen Benutzern ermöglicht, alle Produktdetails (einschließlich Skus, Versandarten usw.) zu erhalten.
Angenommen, wenn ich eine API GET haben:/Produkte
Der Code, der alle Details Produkt holt werden, was einige der folgenden
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.
}
Nun meine Frage ist, diese Logik richtig ist ? In diesem Fall befinden sich alle Logiken in der Steuerung, da ich mit beredten Modellen ein Modell für jede Tabelle verwende und die Beziehungen darin definiert sind. Gibt es eine Weise, die ich alle Details eines Produkts/verknüpften Modell bekommen (Produkte Details (in Tabelle 1) + Sku Details (in Tabelle 2)) anstatt der unter
foreach($products as $product){
$products_id = $product->products_id;
$skus_data = Product::find($products_id)->skus;
}
ich ziemlich neu bin Laravel-Entwicklung und eloquente Modelle. Ich werde Repository-Muster für die Entwicklung verwenden und in diesem Fall, wo sich die Aboe-Logik (Product + Sku combining) befindet.
Bitte helfen Sie.
Danke für die detaillierte Antwort. Eine weitere Frage, die ich aus Ihrer Antwort habe, ist, wo alle meine Datenvalidierungen stattfinden. Ist es in der Steuerung oder im Repository und kann ich ein Repository als eine Bibliothek wie in Codeigniter behandeln? – Ajeesh
@ user34305: Um die Daten zu validieren, können Sie dies auf verschiedene Arten tun: in Ihrem Controller, in Ihren Modellen oder in bestimmten Klassen, hängt es von Ihren Bedürfnissen und Präferenzen ab: [hier] (http://laravel.com/ Dokumentation/5.1/Validierung), um weitere Informationen zu erhalten. Für den Codeigniterteil kann ich nicht helfen, da ich es nicht verwende :) – Moppo
Danke Mann. Ich markiere deine Antwort akzeptiert. :) – Ajeesh