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.
class Post extends CActiveRecord<br />
{<br />
public $title='por favor insira um título';<br />
......<br />
}<br />
$post=new Post;<br />
echo $post->title; // irá exibir: por favor insira um título<br />
A partir da versão 1.0.2, pode-se atribuir a um atributo um valor <strong>do</strong> tipo CDbExpression,<br />
antes que o registro seja salvo (tanto na inserção, quanto na atualização) no banco de<br />
da<strong>do</strong>s. Por exemplo, para salvar um timestamp retorna<strong>do</strong> pela função NOW() <strong>do</strong> MySQL,<br />
podemos utilizar o seguinte código:<br />
$post=new Post;<br />
$post->createTime=new CDbExpression('NOW()');<br />
// $post->createTime='NOW()'; não irá funcionar porque<br />
// 'NOW()' será trata<strong>do</strong> como uma string<br />
$post->save();<br />
Dica: Embora o Active Record torne possível que sejam realizadas operações no<br />
banco de da<strong>do</strong>s sem a necessidade de escrever consultas em SQL, geralmente<br />
queremos saber quais consultas estão sen<strong>do</strong> executadas pelo AR. Para isso, ative o<br />
recurso de registros de logs <strong>do</strong> <strong>Yii</strong>. Por exemplo, podemos ativar o componente<br />
CWebLogRoute na configuração da aplicação, e, então poderemos ver as instruções<br />
SQL executadas exibidas no final de cada página. Desde a versão 1.0.5, podemos<br />
alterar o valor da propriedade CDbConnection::enableParamLogging para true, na<br />
configuração da aplicação, assim os valores <strong>do</strong>s parâmetros vincula<strong>do</strong>s a instrução<br />
também serão registra<strong>do</strong>s.<br />
Len<strong>do</strong> um Registro<br />
Para ler da<strong>do</strong>s de uma tabela, podemos utilizar um <strong>do</strong>s méto<strong>do</strong>s find:<br />
// encontra o primeiro registro que atenda a condição especificada<br />
$post=Post::model()->find($condition,$params);<br />
// encontra o registro com a chave primária especificada<br />
$post=Post::model()->findByPk($postID,$condition,$params);<br />
// encontra o registro com os atributos ten<strong>do</strong> os valores especifica<strong>do</strong>s<br />
$post=Post::model()->findByAttributes($attributes,$condition,$params);<br />
// encontra o primeiro registro, utilizan<strong>do</strong> o coman<strong>do</strong> SQL especifica<strong>do</strong><br />
$post=Post::model()->findBySql($sql,$params);