Duda con DataMapper y CodeIgniter

djtonight

Estoy llevando a cabo un proyectillo para romper mano con DataMapper y me surge el siguiente problema que no se resolver.
He de decir que he buscado por google y la documentación oficial, pero no soy capaz de dar con la respuesta al no saber exactamente que buscar en ingles. En fin, a ver si expresandome aqui en español me entendéis.

//Ejemplo inventado
Por ejemplo habiendo la tabla "aulas" y la tabla "alumnos".
Siendo una relación de muchos a muchos, también tengo la tabla "alumnos_aulas", en las que están los siguientes campos:

id
alumnos_id
aulas_id
status
created
updated

Sé perfectamente como relacionar un alumno con un aula
por ejemplo:

// Get user foo
$u = new Alumno();
$u->where('username', 'foo')->get();

// Get aula object for au01
$c = new Aula();
$c->where('name', 'au01')->get();

// Relate user foo to aula au01
$u->save($c);

¿¿¿Pero como puedo rellenar el campo "status"???

djtonight

BUMP

PiradoIV

Hasta donde yo sé, a esa tabla intermedia no puedes acceder, de poco te va a servir status, created y updated ahí.

Métele el status a la tabla que le corresponda (ya sea alumnos o aulas).

Ninja-edit: En cualquier caso, ¿a qué te refieres con status?

1 respuesta
djtonight

#3 Pues por ejemplo, imagina que el Alumno X está en el Aula Y. pero solo de mañanas, entonces en estatus le pongo "1".
Si fuera de tardes le pondria un "2", etc...
Entonces al obtener la relacion de un alumno con un aula, sabría también de que horario es.

Debería hacer acaso otra tabla que relacionara la tabla de relaciones con otra que se llamara "horarios"? :S o ¿como se debe proceder?

Es simplemente ponerle una info personalizada a cada relación. En este caso, en la columna "status"

PiradoIV

Podrías añadirle al aula la columna esa de status (horario), que puede ser mañana o tarde:

$aula->horario

O puedes relacionar el aula con la otra tabla que comentas de horario, bastante más flexible:

$aula->horario->get();

Pero vamos, en cualquier caso no puedes acceder a la tabla intermedia, es algo interno de DataMapper.

Usuarios habituales

  • PiradoIV
  • djtonight