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()->find(array(<br />

'select'=>'title',<br />

'condition'=>'postID=:postID',<br />

'params'=>array(':postID'=>10),<br />

));<br />

Informação: Quan<strong>do</strong> a condição de uma consulta deve casar com colunas com um<br />

determina<strong>do</strong> valor, utilizamos o méto<strong>do</strong> findByAttributes(). Fazemos com que o<br />

parâmetro $attributes seja um vetor, onde os atributos são indexa<strong>do</strong>s pelos nomes das<br />

colunas. Em alguns frameworks, essa tarefa é feita utilizan<strong>do</strong>-se méto<strong>do</strong>s como<br />

findByNameAndTitle. Apesar de parecer uma maneira mais atrativa, normalmente<br />

esses méto<strong>do</strong>s causam confusão, conflitos e problemas em relação aos nomes de<br />

colunas com maiúsculas e minúsculas.<br />

Quan<strong>do</strong> uma condição encontra diversos resulta<strong>do</strong>s em uma consulta, podemos traze-los<br />

to<strong>do</strong>s de uma vez utilizan<strong>do</strong> os seguintes méto<strong>do</strong>s findAll, cada um com sua contraparte<br />

na forma de méto<strong>do</strong>s find, como já descrito.<br />

// encontra to<strong>do</strong>s os registros que satisfação a condição informada<br />

$posts=Post::model()->findAll($condition,$params);<br />

// encontra to<strong>do</strong>s os registros com a chave primária informada<br />

$posts=Post::model()->findAllByPk($postIDs,$condition,$params);<br />

// encontra to<strong>do</strong>s os registros com campos com o valor informa<strong>do</strong><br />

$posts=Post::model()->findAllByAttributes($attributes,$condition,$params);<br />

// encontra to<strong>do</strong>s os registros utilizan<strong>do</strong> a consulta SQL informada<br />

$posts=Post::model()->findAllBySql($sql,$params);<br />

Se nenhum registro for encontra<strong>do</strong>, findAll irá retornar um vetor vazio, diferente <strong>do</strong>s<br />

méto<strong>do</strong>s find que retornam null quan<strong>do</strong> nada é encontra<strong>do</strong>.<br />

Em conjunto com os méto<strong>do</strong>s find e findAll, já descritos, os seguintes méto<strong>do</strong>s também<br />

são forneci<strong>do</strong>s:<br />

// pega o número de registros que satisfaz a condição informada<br />

$n=Post::model()->count($condition,$params);<br />

// pega o número de registros que satisfaz a instrução SQL informada<br />

$n=Post::model()->countBySql($sql,$params);<br />

// verifica se há pelo menos um registro que satisfaz a condição informada<br />

$exists=Post::model()->exists($condition,$params);<br />

Atualizan<strong>do</strong> Registros<br />

Depois que uma instância AR tenha si<strong>do</strong> preenchida com os valores <strong>do</strong>s campos da<br />

tabela, podemos atualiza-los e salva-los de volta para o banco de da<strong>do</strong>s.

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

Saved successfully!

Ooh no, something went wrong!