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.

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:

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.

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados