DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

Salvando os dados no CakePHP

Veja nesse artigo os métodos que a classe Model do Cake disponibilizar para a inserção e atualização de dados.

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você gostaria de comentar o que não lhe agradou?

Basicamente, a classe Model nos fornece dois métodos para salvar e um para atualizar, são eles, save(), saveAll() e updateAll(). Vamos ver cada um deles agora.

O método save()

Esse método recebe um array com os valores que devem ser salvos no seguinte formato: array[‘Model’] [‘campo’]. Dessa forma quando chamarmos um método save() de um model dentro do controle ele saberá exatamente o que fazer.

Caso você esteja usando o FormHelper na sua View seguindo as normas do Cake, o post será enviado já no padrão de ser inserido no banco pelo método save().

O save() recebe dois argumentos ambos com o padrão nulo, Model::save($data = null, $params = array()).

Vejamos agora um exemplo simples.

Listagem 1: O método save().

	//na classe PessoaController
	/*a variável $data recebe o array do post que fica armazenado no array data de requeste */
	$data = $this->request->data;
	/*$data estará no formato $data[‘Pessoa’][‘nome’],$data[‘Pessoa’][‘idade’] */
	$this->Pessoa->save($data);

No exemplo acima fizemos o que é de mais comum, podemos especificar um pouco mais usando o segundo parâmetro que tem as seguinte posições:

  • validate: um valor booleano que habilita e desabilita a validação.
  • filedList: um array com os campos que você quer salvar, o padrão é todos os campos.
  • callbacks: false para desabilitar, ‘berfore’ ou ‘after’ para permitir apenas este.

O método saveAll()

Esse método faz praticamente a mesma coisa que o método save(), a única diferença é que caso estejamos passando um campo de um model diferente do chamado mas que sejam relacionados, então o Cake criará um outro registro e o relacionamento entre os dois.

Listagem 2: O método saveAll().

	//na classe PessoaController
	/*a variável $data recebe o array do post que fica armazenado no array data de requeste */
	$data = $this->request->data;
	/*$data estará no formato $data[‘Pessoa’][‘nome’],$data[‘Pessoa’][‘idade’],$data[‘Grupo’][‘nome’] */
	$this->Pessoa->saveAll($data);
/*Será criado uma nova pessoa e um novo grupo*/

Ah! Quase me esqueci de dizer que tanto no save quanto no saveAll, quando o campo da chave primaria vem no post, o Model tentará atualizar o registro.

O método updateAll()

Usamos para atualizar campos de um registro. Seu uso é bastante simples, contem dois arrays, um com os campos e valores e o outro com as condições: Model::updateAll($data = array(),$conditions = array()).

Listagem 3: O método updateAll().

	$this->Pessoa->updateAll(
    array('Pessoa.nome' => "Allan"),
    array('Pessoa. id' => 1)
);
 

Busquei, neste artigo, explicar os métodos de persistência das informações no banco de dados utilizados no framework CakePHP. Espero que tenham gostado. Até o próximo artigo.


Allan Douglas
Analista Programador, com foco nas linguagens Java e PHP, Tecnico em Informática Formado pela Escola Técnica Redentorista - Campina Grande Paraíba. Graduando em Análise de Sistemas pela Estácio do Recife.
O que você achou deste post?

    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03