mercoledì 9 giugno 2010

Accesso ad un modello in cascata in CakePhp

CakePhp si è ispirato molto a Ruby On Rails e se ne vedono alcuni tratti nella scrittura del codice del framework, purtroppo a Cake manca l'eleganza e la compattezza di Ruby.

Facendo un esempio è esattamente quello che succede con i prodotti Apple, cos'ha un pc di diverso da un Mac?
Nulla fanno le stesse cose, ma un Mac è decisamente più elegante, un iPhone è più cool e usabile di un Nokia e via dicendo.

Ad esempio immaginiamo questi tre modelli:
Modello1(campi vari, modello2_id) -----belongsTo----> Modello2(campi vari, modello3_id) ------belongsTo----->Modello3(campi_vari)

nel primo modello dovrei dichiarare la seguente relazione:
 
var $belongsTo = array(
'Model2',
'Model3' => array(
'foreignKey' => false,
'conditions' => array('Model2.model3_id = Model3.id')
)
);


che in effetti è molto più lungo del corrispettivo ruby:
 
belongsTo => :Model2


difatto la relazione con il Model3 sarebbe gestita dalla relazione specificata nel Model2, cosa non funzionante con CakePhp

Nessun commento:

Posta un commento