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.

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

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

Saved successfully!

Ooh no, something went wrong!