Sto sviluppando un'applicazione laravel che ha i seguenti modelli eloquentilaravel modello eloquenti come ottenere i dati dalla tabella del rapporto
- hasMany del prodotto ('App/Sku', 'products_id')
- Sku belongTO ('App/prodotto')
ho un regolatore di 'ProductController', dove il seguente codice è disponibile
public function index()
{
$products = Product::all();
foreach($products as $product){
$products_id = $product->products_id;
}
}
Sto esponendo l'API RESTfull che consentirà ai miei utenti di ottenere tutti i dettagli del prodotto (inclusi skus, tipi di spedizione ecc.).
Supponiamo che se ho un API GET:/prodotti
Il codice che recupera tutti i dettagli del prodotto saranno un po 'quello che il seguente
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.
}
Ora la mia domanda è, è questa logica corretta ? In questo caso tutte le logiche sono nel controller poiché im utilizzando modelli eloquenti ho un modello per ogni tabella e le relazioni sono definite al suo interno. C'è un modo per ottenere tutti i dettagli di un/modello associato prodotto (Particolari dei prodotti (in tabella 1) + dettagli SKU (nella tabella 2)) invece di usare il seguito
foreach($products as $product){
$products_id = $product->products_id;
$skus_data = Product::find($products_id)->skus;
}
Sono abbastanza nuovo a sviluppo di laravel e modelli eloquenti. Utilizzerò il pattern di repository per lo sviluppo e in tal caso dove risiede la logica di aboe (combinazione prodotto + Sku).
Si prega di aiutare.
Grazie per la risposta dettagliata. Un'altra domanda che ho dalla tua risposta è dove avvengono tutte le convalide dei miei dati? Si trova nel controller o nel repository e posso trattare un repository come una libreria come in codeign? – Ajeesh
@ user34305: per convalidare i dati è possibile farlo in modo diverso: nel controller, nei modelli o utilizzando classi specifiche, dipende dalle esigenze e dalle preferenze: controllare [qui] (http://laravel.com/ docs/5.1/validation) per ottenere maggiori informazioni. Per la parte del codeigniter non posso fare a meno di non usarlo :) – Moppo
Grazie amico. Im contrassegnando la tua risposta accettata. :) – Ajeesh