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()->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.