20.11.2014 Views

O Guia Definitivo do Yii 1.1

O Guia Definitivo do Yii 1.1

O Guia Definitivo do Yii 1.1

SHOW MORE
SHOW LESS

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);

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!