Sto testando CodeIgniter e sto provando a creare un blog semplice. Il video tutorial su CodeIgniter site è bello, ma molto incompleto. Non ho molta familiarità con la struttura MVC e mi chiedo esattamente come viene utilizzato un modello. Per esempio, sto attualmente facendo la parte "admin" del mio blog, che ti permette di creare, eliminare e modificare le voci. La vista contiene solo xhtml e il controller si occupa del resto. Cosa dovrebbe essere nel modello? Tutto il database correlato si verifica nel modello (ad esempio, inserisce, aggiorna, seleziona, ecc.)?Blog in CodeIgniter: dove inizia il modello e il controller termina?
risposta
Dipende da chi chiedi.
Alcune persone amano mettere il più possibile nel modello (convalida, recupero dei dati, ecc.) E fare in modo che il controller lo colpisca per ottenere i dati di cui ha bisogno, che poi passa alla vista.
Pensate in questo modo: se avete più di un controller che accede a un singolo modello, non dovrebbero esserci cose comuni tra di loro essere in un posto comune (purché quella cosa comune abbia in realtà qualcosa a che fare con il modello)?
Questa è una buona risposta, ma mi piacerebbe segnalare un buon articolo sui modelli qui, come alcune letture aggiuntive: http://blog.astrumfutura.com/archives/373-The-M-in-MVC-Why- I modelli sono incompresi e non apprezzati.html –
@Jani: articolo fantastico, grazie per il link. – nilamo
Il controller è responsabile solo dell'adozione dei parametri http e di trasformarli in qualcosa che il modello può digerire. Il controller è l'agente di accoppiamento tra il client e il server. In questo modo, è possibile riutilizzare il codice modello quando si decide di eseguire il server su altri client utilizzando xml, json o qualsiasi altro trasporto. –
model = è oggetto che "comunica con il database" view = is object that building user interface controller = è il comandante .. ha ricevuto il comando dall'utente e quindi lo ha passato sul modello e servito all'utente attraverso la vista.
per creare un semplice blog, provare a leggere Codeigniter per iniziare. ti aiuterà molto dopo aver visto il video. i riferimenti al codeigner sono ben documentati e ben spiegati. provalo prima
Il modello non è un'implementazione del modello di record attivo. È dove dovrebbe andare l'elaborazione dei dati. Dovrebbe anche darti un modo per connetterti al db, sì, ma il suo unico scopo non è l'accesso db. – AntonioCS
parlando con database non sempre in record attivo. Creo manualmente il mio modello per imitare i record attivi (anche se è così semplice e non flessibile). Ma il modello in MVC dovrebbe parlare con DB althoug in CI non è necessario (puoi semplicemente usare view e controller per fare quello che vuoi) – nightingale2k1
Beh, ho trovato che i video introduttivi del codeigniter vanno bene per mostrare cosa può fare il framework, no così tanto da iniziare un progetto di blog. Nel video non si preoccupano della sicurezza e di altre cose importanti, e non mostrano come usare un modello (ecco perché sto qui ponendo la domanda ^^;) – Manu
Il modello deve contenere tutto il database correlato ed eseguire tutte le operazioni di base CRUD (Crea, Ottieni, Aggiorna, Elimina).
Il controller deve gestire tutte le comunicazioni tra il modello e la vista. Ad esempio, se hai un modulo per aggiungere un nuovo post, dovresti avere una vista per quel modulo, che viene chiamato da un controller. Il controllore controllerebbe se è stato inviato qualcosa e, in caso di problemi, chiama il metodo di creazione/inserimento dal modello di post.
Per me, il modello è un punto in cui faccio tutto il lavoro "sporco" per i miei dati. Prendo, inserisco, aggiorno i dati nel database, tutto in un modello. Creo 1 modello per 1 tabella nel db.
Il controller sarà centrale logico per una pagina che creo. Ha bisogno di essere il più sottile possibile. Se una funzione va al di là di 1 schermata, allora è troppo lunga (eccetto se fa una validazione che deve essere fatta nel controller). È qui che il modello entra in gioco. Il controller passa semplicemente i dati nel modello. Controllo, elaborazione e formattazione dei dati nel modello. Il mio controller preleva i dati elaborati dal modello, lo passa alla vista, finisce.
Aggiunta, il modello non è sempre necessario svolgere attività correlate al database. Io uso anche il modello per recuperare i dati personalizzati dai cookie. Per me, questo è un dato e il modello dovrebbe elaborarlo prima che io lo usi in controller/view. –
Questa è anche la mia scelta. Il mio modello fa funzioni di database e questo è tutto. Le librerie eseguono funzionalità comuni che non sono correlate ai database e i controller raccolgono solo dati e li consegnano alla vista. –
- 1. Shebang "#!" inizia e "! #" termina?
- 2. Grasso Modello Skinny Controller CodeIgniter
- 3. Il modo migliore per nominare controller e modelli in codeigniter
- 4. regolatore Codeigniter e il modello con lo stesso nome Collison
- 5. Codeigniter Setting Homepage (Controller predefinito)
- 6. Codeigniter se controller
- 7. Entity Framework: dove il campo inizia con il numero
- 8. C'è qualsiasi controller o il controller super-globale nel Codeigniter
- 9. Dove convertire il modello di business per visualizzare il modello?
- 10. Codeigniter Proprietà non definita, o in che modo il mio controller smetterà di preoccuparsi e imparerà ad amare il modello
- 11. "Inizia con" in Twig modello
- 12. Codeigniter carica il modello nella libreria
- 13. CodeIgniter: dove dovrebbe andare una particolare funzionalità?
- 14. Dove dovrei creare il mio blog di sviluppo?
- 15. Compilare il modello in vista e passarlo controller
- 16. jquery help del selettore - come trovare l'elemento il cui ID inizia e termina con caratteri specifici
- 17. CodeIgniter Controller Constructor
- 18. CodeIgniter 3 Impossibile individuare il modello è stato specificato
- 19. Test di spock: pulizia dopo "dove:" termina il blocco
- 20. Rails - Il nome del modello termina con S
- 21. Codeigniter 2 limita il controller alla riga di comando
- 22. IoC e ASP.NET MVC, da dove inizia tutto?
- 23. Post JSON to Codeigniter controller
- 24. codeigniter reindirizza al controller diverso
- 25. Rails: dove inserisci il codice non di modello?
- 26. Codeigniter get nome controller in helper
- 27. Estendere la classe controller in CodeIgniter
- 28. Perché tocca UIViewControllerBegan, toccaMoved e toccaEnded viene chiamato solo quando inizia il primo dei due tocchi, si sposta o termina?
- 29. problema con "count_all_results" e "dove" con Active Record in CodeIgniter
- 30. CodeIgniter: variabili globali in un controller
Perché qualcuno ha votato? Se non hai mai lavorato prima su MVC, è una domanda molto valida (e comune). – nilamo
Forse perché la domanda è troppo specifica (su codeigniter) e non molto su MVC in generale. – MarmouCorp
Che io possa capire, ma se non conosci molto su MVC, potresti non sapere che è indipendente dalla lingua e dal framework e quindi fornirebbe tutti i dettagli su come si applica alla tua situazione il più possibile. – nilamo