Problema com saveAll()

19 views
Skip to first unread message

diego182

unread,
Nov 12, 2009, 3:57:51 PM11/12/09
to Cake PHP Português
Pessoal, eu to tentando salvar um campo com 2 models com ligação
$hasMany porém tá ocorrendo um problema como podem observar na tabela
abaixo ele substitui todos os primeiros caracteres de cada campo pelo
id equivalente na tabela 'companies' e não gera o id referente a
tabela companies, colocando 0 em seu lugar

CREATE TABLE IF NOT EXISTS `company_contacts` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`company_id` int(11) NOT NULL,
`phone` char(14) NOT NULL,
`email` varchar(254) DEFAULT NULL,
`person` varchar(50) NOT NULL,
`created` datetime NOT NULL,
`modified` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;

INSERT INTO `company_contacts` (`id`, `company_id`, `phone`, `email`,
`person`, `created`, `modified`) VALUES
(3, 0, '411) 3232-2323', '4s...@gmail.com', '4ome 1', '2009-11-11
21:57:40', '2009-11-11 21:57:40'),
(4, 0, '511) 5353-3232', '5se...@gmail.com', '5ome3', '2009-11-11
22:00:29', '2009-11-11 22:00:29'),
(5, 0, '611) 6464-6466', '6s...@gmail.com', '6ome 5', '2009-11-11
22:08:24', '2009-11-11 22:08:24'),
(6, 0, '711) 3333-9992', '7s...@gmail.com', '7ome 6', '2009-11-11
22:19:03', '2009-11-11 22:19:03');



o arquivo add.ctp está assim

<div class="companies form">
<?php echo $form->create('Company', array('action'=>'add'));?>
<fieldset>
<legend><?php __('Add Company');?></legend>
<?php
echo $form->input('Company.name');
echo $form->input('Company.razao_social');
echo $form->input('Company.cnpj');
echo $form->input('Company.street_type');
echo $form->input('Company.street');
echo $form->input('Company.number');
echo $form->input('Company.complement');
echo $form->input('Company.district');
echo $form->input('Company.city');
echo $form->input('Company.state');
echo $form->input('Company.cep');
?>
</fieldset>

<fieldset>
<legend><?php __('Add CompanyContact');?></legend>
<?php
echo $form->input('CompanyContact.phone');
echo $form->input('CompanyContact.email');
echo $form->input('CompanyContact.person');
?>
</fieldset>
<?php echo $form->end('Submit');?>
</div>
<div class="actions">
<ul>
<li><?php echo $html->link(__('List Companies', true),
array('action' => 'index'));?></li>
</ul>
</div>



a o controller tá assim

function add() {
if (!empty($this->data)) {
$this->Company->saveAll($this->data, array
('validate'=>'first'));
}
}

Edinei L. Cipriani

unread,
Nov 19, 2009, 7:08:43 AM11/19/09
to cake-...@googlegroups.com
Olá amigo,

parece ser problema de convenção

echo $form->input('Companycontact.phone');


Passe a configuração dos seus models.


abrs.

2009/11/12 diego182 <dieg...@gmail.com>



--
Edinei L. Cipriani
Blog: http://phpedinei.wordpress.com
Twitter: http://www.twitter.com/phpedinei

Desenvolvedor Colégio Trilingue Inovação
Site: http://www.colegioinovacao.com.br
Cursando Sistemas de Informação  - Unoesc Chapecó 1 Período
Integrante do grupo Fool N Lost de algoritimos computacionais
Fone 49 84149086
Reply all
Reply to author
Forward
0 new messages