Visualizzazione dei risultati da 1 a 10 su 10

Discussione: [cakePHP] recursive

  1. #1

    [cakePHP] recursive

    Ho i seguenti modelli/tabelle

    Richiesta belongsTo Ufficio
    Ufficio belongs Sede

    quando faccio un find sulle Richieste vorrei che mi venissero informazioni anche sulla sede, e invece cakePHP si limita a fare il JOIN tra Richieste e Uffici, senza collegare la tabella Sedi

    Questo con qualsiasi valore di recursive impostato

    qualsiasi aiuto sarà benvenuto, grazie

  2. #2
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Come lo imposti il recursive?

  3. #3
    Originariamente inviato da bubi1
    Come lo imposti il recursive?
    lo ho impostato a vari valori (1, 2, 3... )

    e ho provato tutte le combinazioni: immettendolo sia nel modello che nelle opzioni del find

    Ho cercato un po' in giro e pare che non ci sia molto da fare se non costruirsi la query a mano ma spererei di trovare un behavior che aggiunga questa funzionalità.

  4. #4
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Guarda che sicuramente sbagli qualcosa

    Se hai Richiesta belongsTo Ufficio, e Ufficio belongsTo Sede, e fai un $this->Richiesta->find('all',array('recursive'=>2)); deve funzionare.


    (ps: non esiste recursive 3)

  5. #5
    Non lo escludo.

    Infatti appena ho tempo provo a fare dei test su 3 semplicissime tabelle senza altre cose a complicare la vita e vedo se in effetti funziona come dici tu

    Nel frattempo ti segnalo questo link dove mi pare vengano esposti piu' o meno gli stessi problemi. In effetti ho provato la soluzione che viene proposta e tutto sembra funzionare

    http://www.amityadav.name/cakephp-pa...sassociations/

    Per curiosità tu hai provato il mio stesso caso?

    Ad esempio se ho: città->provincia->regione mi piacerebbe cercando la città avere anche la regione. A te funziona?

    Intanto grazie

  6. #6
    mi pare strano... io ogni volta che metto recursive a 2 mi tira giu anche i santi del paradiso....
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  7. #7
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Originariamente inviato da raven74
    Non lo escludo.

    Infatti appena ho tempo provo a fare dei test su 3 semplicissime tabelle senza altre cose a complicare la vita e vedo se in effetti funziona come dici tu

    Nel frattempo ti segnalo questo link dove mi pare vengano esposti piu' o meno gli stessi problemi. In effetti ho provato la soluzione che viene proposta e tutto sembra funzionare

    http://www.amityadav.name/cakephp-pa...sassociations/

    Per curiosità tu hai provato il mio stesso caso?

    Ad esempio se ho: città->provincia->regione mi piacerebbe cercando la città avere anche la regione. A te funziona?

    Intanto grazie
    Si, ho provato. Io ad esempio spesso ho i documenti che appartengono agli utenti che appartengono ai gruppi.
    La soluzione proposta dal tizio su quel link immagino funzioni, ma non ne vedo il senso, dal momento che funziona anche normalmente. A proposito, per caso il tuo model Richiesta actsAs Containable?
    E poi, il tuo cake e' 1.3.x?

    Originariamente inviato da Santino83_02
    mi pare strano... io ogni volta che metto recursive a 2 mi tira giu anche i santi del paradiso....

  8. #8
    ok, ho capito l'arcano

    effettivamente recursive fa cio' che promette. Pero' non mette tutto in un'unica query utilizzando i JOIN, ma fa tante query, una per ogni record.

    Cio' in genere non crea problemi in quanto il recordset finale ha tutti i dati richiesti

    Pero' io volevo utilizzare un virtual field che prendesse i dati da due tabelle e questo creava errori

    mi spiego meglio: supponete di avere utente->citta->provincia

    supponete di creare in città un virtual field che leghi la città alla provincia in questo modo

    Codice PHP:
    var $virtualFields = array(
    'fullName' => 'CONCAT(Città.nome, "(", Provincia.sigla, ")" )'
    ); 
    in modo da avere in un unico campo cose tipo

    Chioggia (VE)
    Pozzuoli (NA)


    questo vi darà errore quando fate un find sulla tabella utente perchè la tabella Provincia non viene inserita direttamente nel JOIN ma per ogni record di utente viene fatta una nuova query per trovare la relativa provincia.

    Peccato.

  9. #9
    piu' semplicemente non posso cercare tutti gli utenti la cui provincia cominci con 'V' facendo qualcosa del genere

    Codice PHP:
    'conditions' => array('Provincia.nome LIKE "V%"'
    perché la tabella Provincia non viene inserita nel JOIN

  10. #10
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Allora ha senso fare delle join dinamiche. O unbind/bind come nel link di sopra.

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.