Hoje me deparei com um probleminha ao precisar inserir mais de um registro no banco de uma vez.

A solução que eu procurava era para ter o seguinte efeito:
[sourcecode language='sql']INSERT INTO tabela (titulo,created) VALUES (’11111′, ’2009-09-28 17:05:03′);
INSERT INTO tabela (titulo,created) VALUES (’22222′, ’2009-09-28 17:05:03′);
INSERT INTO tabela (titulo,created) VALUES (’33333′, ’2009-09-28 17:05:03′);
INSERT INTO tabela (titulo,created) VALUES (’44444′, ’2009-09-28 17:05:03′);
INSERT INTO tabela (titulo,created) VALUES (’55555′, ’2009-09-28 17:05:03′);
[/sourcecode]

Ou seja, eu precisava inserir uma série de registros de uma vez, sendo que no cakephp, se você escrever $this->Model->save($this->data) para um array com todos os campos, ele salva somente o ultimo registro, resultando em uma única inserção.

Para se ter sucesso nesta situação, seu array deve estar configurado conforme abaixo:
Não precisa estar configurado necessariamente assim, mas a meu ver, é a mais adequada.
[sourcecode language='HTML']array(
[Model] => array(
[0] => array(
[titulo] => ’111111′
[texto] => ‘xxxxxxx’
)
[2] => array(
[titulo] => ’222222′
[texto] => ‘xxxxxxx’
)
[3] => array(
[titulo] => ’333333′
[texto] => ‘xxxxxxx’
)
)
)[/sourcecode]
Em seu controller, você vai seguir a seguinte lógica:
[sourcecode language='php']foreach($this->data['Model'] as $item){
$this->Model->save($item);
$this->Model->id = null;
}[/sourcecode]
Explicando:
Linha 1: Passamos um foreach no array $this->data['Model']. Usamos este array para cair direto no array útil para este recurso que é o array Model.
Linha 2: Executamos o SAVE no model, normalmente. A diferença é que estaremos pegando o resultado do foreach, ou seja, estaremos pegando um bloco por vez do array e salvando.
Linha 3: É aqui que resolvemos o problema. Ao fim de cada inserção, devemos anular o ID. Se você não anular este ID, o Cakephp irá salvar somente o último insert, isso porque ele vai atribuindo o ID constantemente e no final, ele pega somente o id que está na variavel que é o último.

Essa dica não é daquelas que se acha facilmente na documentação do Cakephp, tão pouco no google, então, está aí a dica. Qualquer dúvida ou outras soluções, pode postar aqui.

Atualização: 29/09/09
Segue a dica do Richard, que é usar o mesmo array mostrado nest post e no save, colocar $this->Model->saveAll($data). Isso já resolve o problema e dispensa o uso do foreach.

Consulte o manual: http://book.cakephp.org/pt/view/75/Saving-Your-Data