Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    313

    Usare lo stesso model per diverse tabelle

    Salve ho un piccolo problema e non riesco a capire come personalizzare la voce costruct su codeigniter, attualmente per riachiamre il mio model dal controller utilizzo la seguente sintassi :
    codice:
    $this->load->model('my_model_name_model');
    $this->my_model_name_model->name_of_my_function_in_model();
    e di conseguenza questa è la mia sintassi del Model

    codice:
    class My_model_name_mode extends MY_Model
    {
        var $id;       
        var $agente;
        var $codice_agente;
        var $descrizione;
        var $email;
        
        public function __construct()
        {
            parent::__construct('my_model_name');        
        }
        public function name_of_my_function_in_model(){
            $sql= "SELECT * FROM my_model_name";
            return $this->db->query($sql)->result_object();
        }
    Ora il mio problema qual'è, siccome sto creando un sistema che si crea da solo le tabelle ma che utilizza la stessa struttura cambiando solo il nome della tabella, vorrei usare lo stesso model per gestire le diverse tabelle, passandogli in maniera consueta il nome della tabella che a me interessa, ora mi sto bloccando su questa funzione contenuta dentro al model.
    codice:
        public function __construct()
        {
            parent::__construct('my_model_name');        
        }
    come faccio a cambiare questo parametro
    codice:
    'my_model_name'
    IN 'my_model_name_1' oppure 'my_model_name_2' e cos' via ?

  2. #2
    non so bene come provare e testarne il funzionamento.
    di MVC non ne capisco molto però puoi provare a fare cosi:

    Codice PHP:
    publicfunction __construct()
        {
           for(
    $i=1;$i<10;$i++){
            
    parent::__construct('my_model_name'.$i);  
                               }      
        } 
    il problema persiste nella SELECT secondo me comunque.
    Se tu ne modifichi il nome la query non va a avanti

  3. #3
    non puoi usare un model per più tabelle, un model è la rappresentazione di una tabella..
    Questa volta, più che un voto.. è favoreggiamento.

  4. #4
    Per evitare di replicare funzioni simili in diversi model puoi agire con il file MY_Model che dal codice che ci stai proponendo si evincerebbe che già lo hai creato.

    Un esempio bello e pronto è questo http://www.codebyjeff.com/blog/2012/...elows-my_model
    (mette un po' tropppi vincoli per i miei gusti ma vabbhè...)

    Oppure http://chris-schmitz.com/codeigniter-base-model
    (codice da svecchiare un pò in quanto php4 style)
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    313
    Ciao Ragazzi grazie per le risposte, a questo punto per avere le cose ben separate. credo che sia meglio creare da php sia il mio file nome_tabella_model.php che la stessa tabella in mysql... cosa ne dite ?

  6. #6
    WTF?
    Avevi avuto un dubbio fondato e ti ho prospettato delle soluzioni valide... che c'è con non và?
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    313
    Beh per una questione di sicurezza preferisco crivermi io le query con dei paramentri di controllo mie, my_model lo utilizzo per dei controlli extra ma alla fine se hai fatto caso uso query nude e crude senza gli helpher di codeigniter che per alcuni problemi avuti in passato, ho deciso di lasciarle perdere...

    Quindi per questo motivo volevo rispettare la mia attuale struttura senza sconvolgere troppo il codice...

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.