Hola gente, estoy utilizando dos métodos muy sencillos en apariencia pero con el que no consigo obtener los resultados deseados.
Tengo dos método en el modelo Partidas:
el primero Busca la partida más pequeña (es el que falla):
Los campos de partidas son
id,user_id,nivele_id,created,modified,finalizado, y está relacionado con el modelo Nivele:
Código:
'Nivele' => array(
'className' => 'Nivele',
'foreignKey' => 'nivele_id',
'conditions' => '',
'fields' => '',
'order' => ''
Código:
function partidaPeqBuscar($juego_id,$numero_nivel) {
$partida=$this->find('first', array(
'fields' => array('Partida.id'),
'conditions' => array('Partida.finalizado' => 0,'Nivele.Numero_Nivel' =>$numero_nivel,
'Nivele.juego_id' => 1),
'order' => array('Partida.id ASC')
));
var_dump($partida['Partida']['id']);
//devolvemos los campos inscripcion y numero_jugadores
if (!$partida)
return false;
return $partida['Partida']['id'];
}
El segundo recoge el valor (que le pasa el controlador) con la id de la partida más pequeña (el problema es que le pasa la más grande y no se porque, creo que el error está en la consulta del primer método).
Código:
function finalizarPartida($partidaPeq) {
$this->id=$partidaPeq;
if (!$this->saveField('finalizado',12) )
return false;
return $partidaPeq;
}
Resumiendo, cuando
$partidaPeq debería formar parte de la primera tupla generada en la tabla partidas perteneciente al nivel que le pasamos, es todo lo contrario, ya que me devuelve la más grande (es decir la última en llegar).
Otra historia relacionada es que por algún extraño motivo
el var_dump me devuelve el número del nivel como string:
string(3) "237"
y no consigo saber porque.
Mil gracias por la ayuda