Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di pyotrex
    Registrato dal
    Feb 2003
    Messaggi
    554

    MVC Compiti del Controller e del Model

    Ciao, stò studiando un pò di teoria e ho il seguente dubbio, seguendo il modello MVC i dati provenienti da un form da chi devono essere validati e/o eventualmente inizializzati, dal controller o dal model? Io suppongo dal controller, ma il confine a volte non mi è ben nitido.
    Vivrò una vita intera e fortunatamente morirò una volta sola

  2. #2
    Model si occupa della parte di buisiness, ossia interagire con il database.
    Controller processa i dati in input provenienti da una pagina jsp,php,asp.... li valida e li passa al model, il model gli ritorna i dati a questo punto il controller effettua una forward alla View per visualizzare i dati di output.

    E' tutto.
    Roberto Dungino

  3. #3
    Se non erro, il Model si occupa della convalida dei dati che devono comunicare con il DB.
    Questo perchè il Model stesso sintetizza la struttura ORM di una tabella o di più relazioni, di conseguenza, se un campo deve rispettare un determinato algoritmo, nel Model va messa la condizione per la sua convalida(nel caso di una insert ad esempio).
    Così almeno si usa fare in Rails, che ha una architettura MVC su ActiveRecord(ORM).
    Nel controller si processano i POST e i GET da usare, ma il Model definisce come i dati devono essere affinchè li possiamo aggiungere nella tabella.

    Saluti

    Alberto
    Sistemi di allarme, telecamere, autoradio, video proiettori e altri prodotti tecnologici: fedom.it

  4. #4
    ops
    Sistemi di allarme, telecamere, autoradio, video proiettori e altri prodotti tecnologici: fedom.it

  5. #5
    Utente di HTML.it L'avatar di pyotrex
    Registrato dal
    Feb 2003
    Messaggi
    554
    Siccome mi sembra che i precedenti post esprimano pareri discordanti

    Controller processa i dati in input provenienti da una pagina jsp,php,asp.... li valida e li passa al model
    nel Model va messa la condizione per la sua convalida(nel caso di una insert ad esempio).
    Facciamo un esempio chiarificatore, mi arrivano dei dati via POST, che devo validare e inserire in un db, chi fa la validazione dei dati prima che vengano inseriti nel db?
    Vivrò una vita intera e fortunatamente morirò una volta sola

  6. #6
    Originariamente inviato da pyotrex
    Siccome mi sembra che i precedenti post esprimano pareri discordanti





    Facciamo un esempio chiarificatore, mi arrivano dei dati via POST, che devo validare e inserire in un db, chi fa la validazione dei dati prima che vengano inseriti nel db?
    Il model si occupa della validazione dai un occhio qui


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  7. #7
    Utente di HTML.it L'avatar di pyotrex
    Registrato dal
    Feb 2003
    Messaggi
    554
    Grazie a tutti per il tempo che mi avete dedicato.
    Ragionando e provando a mettere in pratica la teoria mi vengono tanti quesiti, vediamo se mi potete aiutare.
    In una classica pagina che effettua una lista di elementi (archiviati in un db mysql) e che ha come caratteristiche paginazione, ordinamento e filtri di ricerca, il model tratta le var in ingresso e ne effettua la validazione e le restituisce al controller, che le ri gira al model per la select al db mysql, da qui in poi ecco i miei dubbi:
    1) Una volta che il model ha reperito i dati li restituirà al controller sotto forma di array?
    2) La funzione o classe che esegue la paginazione per rispettare mvc non deve avere query al suo interno, perchè queste devono venire effettuate esclusivamente dal model, quindi possiamo dire che una funzione o classe di paginazione in stile mvc lavora su un array di dati?
    3) Una funzione di paginazione dovrebbe essere a carico del controller o della view?

    poi vi esporrò gli altri dubbi
    Vivrò una vita intera e fortunatamente morirò una volta sola

  8. #8
    Utente di HTML.it L'avatar di pyotrex
    Registrato dal
    Feb 2003
    Messaggi
    554
    up
    Vivrò una vita intera e fortunatamente morirò una volta sola

  9. #9
    Originariamente inviato da pyotrex
    Grazie a tutti per il tempo che mi avete dedicato.
    Ragionando e provando a mettere in pratica la teoria mi vengono tanti quesiti, vediamo se mi potete aiutare.
    In una classica pagina che effettua una lista di elementi (archiviati in un db mysql) e che ha come caratteristiche paginazione, ordinamento e filtri di ricerca, il model tratta le var in ingresso e ne effettua la validazione e le restituisce al controller, che le ri gira al model per la select al db mysql, da qui in poi ecco i miei dubbi:
    1) Una volta che il model ha reperito i dati li restituirà al controller sotto forma di array?
    2) La funzione o classe che esegue la paginazione per rispettare mvc non deve avere query al suo interno, perchè queste devono venire effettuate esclusivamente dal model, quindi possiamo dire che una funzione o classe di paginazione in stile mvc lavora su un array di dati?
    3) Una funzione di paginazione dovrebbe essere a carico del controller o della view?

    poi vi esporrò gli altri dubbi
    Scusami se non ho potuto rispondere celermente, comunque:
    1) il controller prende i POST/GET, li dà al model, si controlla la bontà dell'algoritmo del dato in input, e si restituisce un oggetto che ha come attributi i campi della tabella.
    2)uhm forse non ho capito bene comunque farei una cosa del tipo(supponendo che hai le funzioni pronte nel model):
    Codice PHP:
    #controller X
    function getList($param)
    {
    $this->lista ListModel::find("all",array("name like...$param}'");
    return 
    $this->lista;
    }
    #NELLA VISTA
    while($risultato=mysql_fetch_object($this->lista)):
    echo 
    $risultato->id;
    echo 
    $risultato->name;
    endwhile; 
    3) La funzione deve essere a carico del controller.
    Fai una richiesta del tipo http://www.tuosito.ext/NomeController/getList/name, e così facendo, richiami la funzione getList del controller NomeController con variabile $_GET['name'].
    Così teoricamente funge l'instradamento delle richieste nei vari frameworks:
    sito.ext/controller/azione(ossia il metodo)/get

    Saluti

    Alberto
    Sistemi di allarme, telecamere, autoradio, video proiettori e altri prodotti tecnologici: fedom.it

  10. #10
    In realtà la paginazione è sia a carico del controller sia del model sia della view. In particolare il controller gestisce le variabili in input in modo che possa comandare a dovere il comportamento dell'operazione di find che avviene nel model, mentre la view ti aiuta a creare i template di impaginazione. Normalmente si usa un Helper della view che gestisce questi template.

    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.