Sono nuovo con CakePHP e sto cercando di creare query complesse per i risultati. Mi sta uccidendo. Forse un po '1 può aiutarmi qui con quello. Sto usando la torta 2,7Come creare la query CakePHP corretta per le relazioni nidificate
Ho due tabelle con 3 relazioni (molte a molte). Neighbourhood
e Polygon
. Un aspetto simile a questo Neighbourhood
ha molti Neighbourhoods
e appartiene anche a molti Neighbourhoods
. Anche Neighbourhood
ha molti Polygons
e Polygon
appartengono a mnay Neighbourhoods
.
Neighbourhood
tabella contiene 2 campi name
e zip
. Quello che ottengo dall'utente è zip code
.
E ora quello che voglio: voglio ottenere tutte Polygons
da Neighbourhood
ed è Neighbours
. Dove Neighbourhood.zip = defined by user
.
Come posso farlo? Devo scrivere una query personalizzata o dividere il processo in passi più piccoli? Sto combattendo con questo tutto il giorno.
Ecco come modelli di relazioni piace guardare:
class Neighbourhood extends AppModel
{
var $hasAndBelongsToMany = array(
'Neighbourhoods' => array(
'className' => 'Neighbourhood',
'joinTable' => 'neighbourhoods_neighbours',
'foreignKey' => 'neighbourhood_id',
'associationForeignKey' => 'neighbour_id',
'unique' => false
),
'Polygon' => array(
'className' => 'Polygon',
'joinTable' => 'neighbourhoods_polygons',
'foreignKey' => 'neighbourhood_id',
'associationForeignKey' => 'polygon_id',
'unique' => false
),
);
}
class Polygon extends AppModel
{
var $hasAndBelongsToMany = array(
'Neighbours' => array(
'className' => 'Neighbourhood',
'joinTable' => 'neighbourhoods_polygons',
'foreignKey' => 'polygon_id',
'associationForeignKey' => 'neighbourhood_id',
'unique' => false,
)
);
}
riesco a creare una query la tua strada che ha funzionato Grazie per avermi mostrato un modo – Vardius
Il mio piacere. a mente questo è per cakephp 2.x che non hai molta flessibilità. Ma in cakephp 3.x che è ORM sei libero di fare quasi tutto molto più semplice. – Fury
Framework e versione non erano la mia scelta, era una scelta del cliente. faccio come mi è stato detto. – Vardius