Lembra do pog que usei para resolver uma situação no cake? Se não lembra veja aqui:

Bem galera, descobri a solução!

Não contente em usar o POG resolvi pesquisar e encontrei um recurso que o cake disponibiliza chamado beforeSave.

O beforeSave faz nada mais que executar uma instrução antes de salvar um dado no banco. Assim como ele, tem o afterSave, beforeFind e afterFind. O after tem o efeito oposto do before.

É muito simples de usar, veja os códigos abaixo:

Sem o before:

$conditions = array(‘mes’=>$mes,’ano’=>$ano);
$this->CoorporativoLigacoes->find($conditions);


$this->CoorporativoLigacoes->save($this->data());

Isso resultava em um erro, pois o resultado da consulta sempre será o mesmo, o ultimo dado cadastrado. Isso porque o cake salva no banco antes de fazer a consulta, ou melhor, ele executa as duas instruções ao mesmo tempo, mas o save é mais rápido.

Agora veja a solução usando o beforeSave

function beforeSave()
{
$conditions = array(‘mes’=>$mes,’ano’=>$ano);
$result = $this->CoorporativoLigacoes->find($conditions);
return $result;
}

function index()
{
$result = $this->beforeSave(); // este será executado primeiro
$this->CoorporativoLigacoes->save($this->data()); // Este só será executado depois do beforeSave
}

O mesmo uso deste você pode aplicar no afterSave, beforeFind, afterFind, etc.

Qualquer dúvida, só postar aqui.

PS: Nada de POG. ;)