php - Kohana 3.3 ORM relations -
i'm starting kohana 3.3 orm trying apply existing internal project.
the project in use, can't alter schema's names. current schema definition following:
table: utente idutente varchar pk nome varchar // other fields table: sessione idsessione serial pk idutente varchar (fk utente.idutente) // other fields table: ruolo idruolo serial pk nome varchar //other fields table: ruoloutente idruolo pk (fk ruolo.idruolo) idutente pk (fk utente.idutente) scadenza datetime // other fields
now defined custom table name , custom primary key name models , if utilize orm::factory('utente', 'marco'); (or other model) going fine.
class model_utente extends orm { protected $_table_name ='utente'; protected $_primary_key ='idutente'; protected $_has_many = array( 'ruoli' => array( 'model' => 'ruolo', 'far_key' => 'idruolo', 'foreign_key' => 'idutente', 'through' => 'ruoloutente', ), 'sessioni' => array( 'model' => 'sessione', 'far_key' => 'idsessione', 'foreign_key' => 'idutente', ), ); // class logic here } class model_ruolo extends orm { protected $_table_name ='ruolo'; protected $_primary_key ='idruolo'; protected $_has_many = array( 'utenti' => array( 'model' => 'utente', 'far_key' => 'idutente', 'foreign_key' => 'idruolo', 'through' => 'ruoloutente', ), ); // class logic here } class model_sessione extends orm { protected $_table_name ='sessione'; protected $_primary_key ='idsessione'; protected $_belongs_to = array( 'utente' => array( 'model' => 'utente', 'far_key' => 'idutente', 'foreign_key' => 'idutente', ), ); // class logic here }
now instance of utente execute $this->ruoli->find_all() , $this->sessioni->find_all() obtain empty model on both.. generated query right on both finding, query executed straight in sql returns 4 results on ruoli , 2 results on sessioni..
found solution
my problem supposed find() , find_all() methods perisist in caller object query results instead of homecoming result. many every one
php orm kohana-3 kohana-orm
No comments:
Post a Comment