O Guia Definitivo do Yii 1.1
O Guia Definitivo do Yii 1.1
O Guia Definitivo do Yii 1.1
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
$post=Post::model()->findByPk(10);<br />
$post->title='novo título <strong>do</strong> post';<br />
$post->save(); // salva as alterações para o banco de da<strong>do</strong>s<br />
Como podemos ver, utilizamos o mesmo méto<strong>do</strong> save() para fazer a inserção e<br />
atualização <strong>do</strong>s da<strong>do</strong>s. Se uma instância AR é criada por meio <strong>do</strong> opera<strong>do</strong>r new, executar<br />
o méto<strong>do</strong> save() irá inserir um novo registro no banco de da<strong>do</strong>s; se a instância é o<br />
resulta<strong>do</strong> de um find ou findAll, executar o méto<strong>do</strong> save() irá atualizar o registro existente<br />
na tabela. Podemos utilizar a propriedade CActiveRecord::isNewRecord para verificar se<br />
uma instância AR é nova ou não.<br />
Também é possível atualizar um ou vários registros em uma tabela <strong>do</strong> banco, sem ter que<br />
carrega-lo primeiro. Existem os seguinte méto<strong>do</strong>s para efetuar essas operações de uma<br />
maneira mais conveniente:<br />
// atualiza os registros que satisfação a condição informada<br />
Post::model()->updateAll($attributes,$condition,$params);<br />
// atualiza os registros que tenha a chave primária informada, e satisfação<br />
a condição<br />
Post::model()->updateByPk($pk,$attributes,$condition,$params);<br />
// atualiza uma coluna counter (contagem) que satisfaça a condição informada<br />
Post::model()->updateCounters($counters,$condition,$params);<br />
No exemplo acima, $attributes é um vetor com os valores das colunas, indexa<strong>do</strong>s pelos<br />
nomes delas.$counter é um vetor com as colunas que terão seus valores incrementa<strong>do</strong>s,<br />
indexadas pelos seus nomes $condition e $paramns estão descritos nos itens anteriores.<br />
Excluin<strong>do</strong> um Registro<br />
Podemos também excluir um registro se a instância AR já estiver preenchida com ele.<br />
$post=Post::model()->findByPk(10); // assumin<strong>do</strong> que há um post com ID 10<br />
$post->delete(); // exclui o registro da tabela no banco de da<strong>do</strong>s.<br />
Note que, depois da exclusão, a instância AR continua inalterada, mas o registro<br />
correspondente no banco de da<strong>do</strong>s já foi excluí<strong>do</strong>.<br />
Os seguintes méto<strong>do</strong>s são utiliza<strong>do</strong>s para excluir registros sem a necessidade de carregalos<br />
primeiro:<br />
// exclui os registros que satisfação a condição informada<br />
Post::model()->deleteAll($condition,$params);<br />
// exclui os registros com a chave primária e condição informada<br />
Post::model()->deleteByPk($pk,$condition,$params);