Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala galera,
eu estou tentando inserir uns registros em uma tabela de associação HABTM, na action de Editar os registros de uma das tabelas associadas, mas sempre que uso o metodo Save(), ele tenta fazer um UPDATE e nunca um INSERT, como eu gostaria.
Segue abaixo os modelos pra exemplificar melhor:
/applications/core/interface/imageproxy/imageproxy.php?img=http://img854.imageshack.us/img854/1016/habtm.jpg&key=f0bae42ebdcb23c7f913637117949fd552edb2e060a6e732282f09d132576d11" alt="habtm.jpg" />
Aqui eu tenho uma tabela que guarda várias categorias de empreendimentos, uma que guarda várias características, e uma que faz a associação das duas, dizendo quais caracteristicas pertencem a qual categoria.
O que eu quero fazer é, quando eu estiver editando uma da categoria, poder escolher suas características e inserir na tabela de associação.
Mas, como eu disse anteriormente, o cakephp só está fanzendo Update na tabela e não Insert como eu gostaria.
categoriasempreendimentos_controller.php
<?php
class CategoriasempreendimentosController extends AppController {
var $name = 'Categoriasempreendimentos';
var $uses = array('Categoriasempreendimento','CategoriasempreendimentosCaracteristicasempreendimento','Caracteristicasempreendimento');
function gerencia_edit($id = null) {
if (!$id && empty($this->data)) {
$this->Session->setFlash(__('Invalid categoriasempreendimento', true));
$this->redirect(array('action' => 'index'));
}
if (!empty($this->data)) {
$this->CategoriasempreendimentosCaracteristicasempreendimento->create();
if($this->CategoriasempreendimentosCaracteristicasempreendimento->saveAll($dados)){echo 'foi';}else {echo 'não foi';} //ESSA É A INSTRUÇÃO COM PROBLEMA
if ($this->Categoriasempreendimento->save($this->data)) {
$this->Session->setFlash(__('The categoriasempreendimento has been saved', true));
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('The categoriasempreendimento could not be saved. Please, try again.', true));
}
}
if (empty($this->data)) {
$this->data = $this->Categoriasempreendimento->read(null, $id);
}
// ... SET das variáveis
}
}
Quando eu envio o formulário para a action gerencia_edit(), eu recebo esses dados:
Array
(
[Categoriasempreendimento] => Array
(
[titulo] => Apartamento3
[id] => 1
[abr] => Ap
[slug] => apartamento
)
[CategoriasempreendimentosCaracteristicasempreendimento] => Array
(
[3] => Array
(
[caracteristicasempreendimento_id] => 3
[categoriasempreendimento_id] => 1
)
[4] => Array
(
[caracteristicasempreendimento_id] => 4
[categoriasempreendimento_id] => 1
)
[5] => Array
(
[caracteristicasempreendimento_id] => 5
[categoriasempreendimento_id] => 1
)
[6] => Array
(
[caracteristicasempreendimento_id] => 6
[categoriasempreendimento_id] => 1
)
[7] => Array
(
[caracteristicasempreendimento_id] => 7
[categoriasempreendimento_id] => 1
)
)
)
Alguém sabe como eu faço pra forçar esse INSERT na tabela associada CategoriasempreendimentosCaracteristicasempreendimento ?
Carregando comentários...