Hoy mismo he necesitado de una validación para verificar si un dato ya existe en la base de datos. Dado que CakePHP 1.1 (en versiones posteriores a la 1.2 podéis utilizar “isUnique”) no lleva una validación en su núcleo para estos menesteres he tenido que crearla y ahora la comparto con vosotros:
/**
* Verifica si un campo existe en la base de datos
* Si estamos editando se excluye el valor guardado en la validación
* @param array $data
* @param string $field Nom de la cel·la a verificar
* @return
*/
public function checkUnique($data)
{
$field = array_pop(array_keys($data));
$data = array_pop(array_values($data));
// Si estem editant...
if(isset($this->data[$this->name]['id']))
{
if ($field == $this->field($field, array($this->name . '.id' => $this->data[$this->name]['id'])))
{
return true;
}
}
// Si no estem editant...
if($this->hasField($field)) {
return $this->isUnique(array($field => $data));
}
}
Para utilizarlo no tenéis más que añadir el trozo de código en el modelo deseado (normalmente en AppModel, para poder utilizarlo desde cualquier modelo) y añadir la validación en el modelo que queráis:
var $validate = array('NOMBRE DE LA CELDA A VALIDAR' => array(
'rule' => 'checkUnique',
'message' => 'Blahblahblah'));
Un ejemplo muy común:
var $validate = array('username' => array(
'rule' => 'checkUnique',
'message' => 'Ya existe un usuario registrado con este nombre!'));
Que lo disfrutéis 
Edición: Se me olvidó comentar que, a diferencia del método de validación checkUnique que se utiliza en el post Inegrando CakePHP y PhpBB 3.x [1], este método sirve también a la hora de editar un ítem ya que, en ese caso, retorna true si el valor de la celda coincide con el ya guardado en la base de datos.