Asociacion HABTM
Una de las características mas destacadas de cake son las asociaciones en particular la de Has And Belongs To Many o muchos a muchos, que en muchas ocasiones nos sera de gran utilidad pero algunas veces nos dará algunos dolores de cabeza, a continuación tratare de redactar los problemas mas comunes relacionados con esta asociación.
Vamos a utilizar el siguiente ejemplo, supongamos que tenemos una tabla de usuarios y otra llamada vehículos, la asociación en sera que un vehículo tiene y pertenece a muchos usuarios y un usuario tiene y pertenece a muchos vehículos entonces crearemos otra tabla llamada usuarios_vehiculos, con los campos usuario_id y vehiculo_id.
// app/models/usuario.php class Usuario extends AppModel { var $hasAndBelongsToMany = array('Vehiculo'); }
// app/models/vehiculo.php class Vehiculo extends AppModel { var $hasAndBelongsToMany = array('Usuario'); }
En este punto ya tenemos listas las asociaciones para ser utilizadas, ya que para la tabla extra que creamos no es necesario crear el modelo ya que utiliza “on the fly” , pero si desean ahorrarse unos cuantos dolores de cabeza como lo hice yo, les recomiendo amplia mente crear el modelo de la tabla en cuestión y asignarle las asociaciones respectivas.
// app/models/usuarios_vehiculo.php class UsuariosVehiculo extends AppModel { var $belongsTo = array('Usuario', 'Vehiculo'); }
Con el modelo creado ahora solo es cuestión de crear el controlador como se hace normalmente y empezar a codificar nuestras acciones, como les comenté si desean ahorrarse unos cuantos dolores de cabeza lo recomendable seria hacerlo de esta manera.


