Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal.
Recentemente passei por um problema. Estava querendo salvar dados de diferentes modelos ao mesmo tempo. Quebrei a cabeça por um tempo para achar um método que fazia isso, e quando descobri, ví que era bastante simples (maldito manual!) xD
Considere o seguinte código:
<?php
echo $form->create('Arquivo' , array('action' => 'cadastrar'));
echo $form->input('Arquivo.titulo');
echo $form->input('Servidor.url');
echo $form->end('Cadastrar');
?>
<?php
class ArquivosController extends AppController {
function cadastrar(){
$this->Arquivo->save($this->data);
}
}
?>
Neste exemplo, será salvo apenas os dados referente ao model "Arquivo" (pois é o que estamos utilizamos) e os dados de "Servidor" simplesmente não serão salvos. A solução para isso é trocar o método Model::save() por Model::saveAll()
<?php
class ArquivosController extends AppController {
function cadastrar(){
$this->Arquivo->saveAll($this->data);
}
}
?>
Simples, não é? Pois é... e eu quebrei a cabeça com isso :P
OK! Uma das vantagens disso é que também salvará os "relacionamentos" entre os models. Por exemplo, se Arquivo hasMany Servidor então ele salvará automaticamento o id de Arquivo nos dados de Servidor, criando assim, o relacionamento.
Bom é isso. Espero que ajude mais alguem. =D
Fonte: http://lucaspelegrino.com
Carregando comentários...