Un modello può avere più tabelle in CakePHP?Un modello può avere più tabelle in CakePHP?
risposta
indovinare da questa frase nel manuale:
Un modello è generalmente un punto di accesso al database, e più specificamente, ad una certa tabella nel database. Per impostazione predefinita, ogni modello utilizza la tabella il cui nome è plurale a sé stante, cioè un modello "Utente" utilizza la tabella "utenti".
Io non la penso così, ma tu puoi fare relazioni forse questo è quello che ti serve.
non può avere più tabelle allo stesso tempo ..., ma si potrebbe essere in grado di modificare il modello :: proprietà useTable per passare tabella del modello a un altro. Dagli un giro e facci sapere se funziona.
Tecnicamente, in base al modo in cui stai ponendo la domanda, non che io sappia. Spesso, però, userò le relazioni con qualcosa che potrebbe essere simile a quello che stai cercando. Ad esempio, una persona ha informazioni sull'indirizzo che possono essere rilasciate nella tabella delle persone abbastanza facilmente, ma di solito preferisco estrapolarle perché altre entità possono anche avere indirizzi (un'azienda, ecc.).
Stessa idea se si desidera implementare una sorta di modello di pseudo-eredità nel DB. Ad esempio, i volontari sono persone, ma lo sono anche gli appaltatori, i venditori e i dipendenti. Tutti condividono alcune proprietà che potresti voler memorizzare in una tabella di persone e altre che sono uniche per il tipo di persona che sono.
In entrambi i casi si dispone di due modelli, ma interagiscono perfettamente con le loro associazioni.
Se è il tipo di scenario a cui stai pensando, un approccio simile potrebbe funzionare anche se non si tratta di un modello con più tabelle.
Immagino di voler implementare una sorta di ereditarietà nel database (che richiede di unire i dati memorizzati nella tabella padre quando si recuperano le informazioni dalla tabella figlia). Il mio approccio per risolvere questo problema era l'utilizzo del callback afterFind nel modello figlio. Ho ridefinito il callback come segue:
function afterFind($results) {
foreach ($results as $key => $val) {
$fieldRetrieved=$this->query("SELECT *field* FROM *parent_table* WHERE id={$val['*ChildModelName*']['id']}");
$results[$key]['*ChildModelName*']['*field*']=$fieldRetrieved[0]['*parent_table*']['*field*'];
}
return $results;
}
In questo modo sono stato incluso il campo/s dalla tabella padre per i risultati ottenuti dalla tabella figlio. In questo caso ho assunto che entrambe le tabelle siano indice con un campo chiamato id e che il campo, nella tabella figlio, sia anche una chiave esterna della tabella padre (creando così la pseudo-eredità).
Certo che può, è comodo quando si hanno tabelle molto identiche.
class SomeModel extends Model
{
var $useTable = false;
public function ReadData()
{
// select table
if($a == 1)
$this->setSource('tableName1');
else if($a == 2)
$this->setSource('tableName2');
// ...
else if($a == N)
$this->setSource('tableNameN');
// now perform operations with selected table
return $this->find('all');
}
}
Puoi 'find ('all')' nell'intero insieme di tabelle invece di definire solo un singolo 'source'? – Oliboy50
- 1. Cakephp, ordinamento tabelle associate
- 2. Auth di Cakephp con più tabelle "Utenti"
- 3. Come unire più tabelle utilizzando CakePHP 3?
- 4. Un'attività può avere più attenditori?
- 5. Possiamo avere un trigger singolo per più tabelle in MySQL
- 6. Un servizio Android può avere più permessi?
- 7. cakePHP, hasOne multiple in un unico modello
- 8. Perché FacesServlet non può avere un modello URL di/*.?
- 9. Una classe può avere un costruttore con modello senza argomenti?
- 10. Un envo java può avere più di un costruttore?
- 11. CakePHP Auth Component utilizzando 2 tabelle
- 12. Un tag img HTML può avere più attributi src?
- 13. python - può lambda avere più di un ritorno
- 14. Un div può avere più classi (Twitter Bootstrap)
- 15. Un elemento HTML può avere più attributi ID univoci?
- 16. Order 'contenere' Modello in CakePHP 3.x
- 17. Come avere più tabelle jQuery TableSorter su una pagina
- 18. Un modello può collegarsi a una vista nel database invece di una tabella in CakePHP?
- 19. Come implementare un modello autoreferenziale (parent_id) in cakephp
- 20. cakephp utilizzare un altro modello all'interno del modello corrente
- 21. Una chiave esterna può fare riferimento a più tabelle?
- 22. Un database Oracle può avere più di un tablespace per l'archiviazione dei dati?
- 23. Modello CakePHP con "Between dates"
- 24. Inserire in più tabelle
- 25. Puoi avere tabelle hash in lisp?
- 26. Un file CSV può avere un commento?
- 27. cakephp una forma, più modelli, non la visualizzazione di messaggi di convalida un modello di
- 28. CakePHP trovare interrogazione su più origini dati
- 29. Un delegato può avere un parametro opzionale?
- 30. Puoi avere più linee in un elemento ?
Non riesco ad aprire il collegamento "Verifica questo". –