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, to aqui no apredizado do cake, to curtindo, mas sempre empaco em umas partes.
Então preciso da ajuda de vocês.
Em resumo é um sistema financeiro. Então em uma parte te a sessão projetos, nessa sessão o projeto pode ter varias parcelas, eu fiz em ajax para ir inclundo campo conforme o cliente precisar.
Exemplo.
Projeto
- Nome do projeto
Dados variaveis que vai ter um link 'incluir mais', então essa parte de data, e valor da parcela pode ter 1 ou 12, ou até mais.
- Data da parcela
- Valor da parcela
Minhas tabelas estão assim
tbl_projeto
- id_projeto
- nome_projeto
tbl_parcelas
- id_projeto
- data
- valor
Eu tenho as duvidas na view e na controle na hora de salvar, não sei se o saveall faz isso.
na view para o nome do projeto eu deixo assim
$form->input('nome_projeto')
Já não sei como deixo esses camos variavel.
e no save não faço nem ideia.
Preciso muito disso, se alguem poder me ajudar agradeço desde já!
Abraço.
Fala Lucas!!
já consegui gravar no banco, mas não to conseguindo mandar o id do projeto para saber de quem que e aquela parcela.
Você sabe como que posso fazer?
Abraço.
Não entendi muito bem, mostre como está seu código. (de preferencia com os models ja no view, para facilitar, exemplo:
$form->input('MeuModel1.meucampo');
$form->input('MeuOutroModel.outrocampo');)
Você não pode postar seu model e seu controller para a gente olhar?
Posso sim, segue os codigos
Model:
<?php
class Projeto extends AppModel{
var $name="Projeto";
var $useTable = "tbl_projetos";
var $primaryKey = "id";
var $hasMany = array('Parcela');
}
class Parcela extends AppModel{
var $name = "Parcela";
var $useTable = "tbl_parcela";
var $belongsTo = array('Projeto');
}
?>
Controller:
class ProjetosController extends AppController{
var $nome = "Projeto";//php 4
var $helpers = array('Html','Javascript', 'Form');
//incluir empresa
function add(){
//grava no banco
if (!empty($this->data)) {
//print_r($this->data);
$this->Projeto->saveAll($this->data);
}
}
}
View:
<h2>Projetos > Incluir</h2>
<?php echo $form->create('Projeto',array('action'=>'add')); ?>
<?php echo $form->input('descricao');?>
<?php echo $form->input('Parcela.0.data');?>
<?php echo $form->input('Parcela.1.data');?>
<input class="bottom_big" type="submit" value="CADASTRAR" />
<?php echo $form->end(); ?>
O codigo esta gravando nas duas tabelas:
INSERT INTO `tbl_projetos` (`descricao`) VALUES ('teste') 1 0
6 SELECT LAST_INSERT_ID() AS insertID 1 1 0
7 INSERT INTO `tbl_parcela` (`data`) VALUES ('2009-11-26') 1 0
8 SELECT LAST_INSERT_ID() AS insertID 1 1 0
9 INSERT INTO `tbl_parcela` (`data`) VALUES ('2009-11-26') 1 0
10 SELECT LAST_INSERT_ID() AS insertID
Mas na tabela parcela ele não esta gravando o 'projeto_id'. Então os dados que estão sendo gravado esta sem o Id do projeto, quando precisar relacionar, saber quis são as parcelas do projeto não irei conseguir.
o certo seria ficar assim
INSERT INTO tbl_parcela (data,'projeto_id') VALUES ('2009-11-26','1')
Valeu
Depois de pesquisar a tarde inteira, fazer varios testes acho que consegui, pelo menos ta dando certo por enquanto!rs
Para quem ficar om duvida com isso também estou colocando aqui o que eu coloqui no codigo.
Da parte do model, no HasMany ficou assim
var $hasMany = array('Parcela' => array(
'foreignKey' => 'projeto_id',
'dependent' => true
)[EDIT]
Opa! Ja conseguiu, beleza entao :P
Fico feliz por você... Mas triste por mim que não consegui ajudar http://forum.imasters.com.br/public/style_emoticons/default/upset.gif
Hahahaha :P
Não fique triste não, logo logo irei postar mais dúvidas aqui!rs
to curtindo trabalhar com o cake, que nesse primeiro projeto ta demorando mais pelo fato de aprender,mas um outro projeto se precisar usar essa parte que ja sei ira ser bem produtivo.
Valeu pelas ajudas Lucas e zenfra!
Abraço
Para multiplos:
http://book.cakephp.org/view/189/Automagic-Form-ElementsE para salvar isso utilize saveAll:
http://lucaspelegrino.com/18/dica-rapida-salvando-dados-de-diferentes-models-ao-mesmo-tempo-com-cakephp/