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.

Dica: Existem duas maneiras de trabalhar como AR utilizan<strong>do</strong> vários bancos de<br />

da<strong>do</strong>s. Se os schemas <strong>do</strong>s bancos são diferentes, você deve criar diferentes classes<br />

base AR, com diferentes implementações <strong>do</strong> méto<strong>do</strong> getDbConnection(). Caso<br />

contrário, alterar dinamicamente a variável estática CActiveRecord::db é uma ideia<br />

melhor.<br />

Definin<strong>do</strong> Classes AR<br />

Para acessar uma tabela <strong>do</strong> banco de da<strong>do</strong>s, precisamos primeiro definir uma classe AR<br />

estenden<strong>do</strong> CActiveRecord. Cada classe Active Record representa uma única tabela <strong>do</strong><br />

banco, e uma instância dessa classe representa um registro dessa tabela. O exemplo<br />

abaixo mostra o código mínimo necessário para uma classe AR que representa a tabela<br />

Post:<br />

class Post extends CActiveRecord<br />

{<br />

public static function model($className=__CLASS__)<br />

{<br />

return parent::model($className);<br />

}<br />

}<br />

Dica: Como as classes Ar geralmente são utilizadas em diversos lugares, podemos<br />

importar to<strong>do</strong> o diretório onde elas estão localizadas, em vez de fazer a importação<br />

uma a uma. Por exemplo, se to<strong>do</strong>s os arquivos de nossas classes estão em protected/<br />

models, podemos configurar a aplicação da seguinte maneira:<br />

return array(<br />

);<br />

'import'=>array(<br />

),<br />

'application.models.*',<br />

Por padrão, o nome de uma classe AR é o mesmo que o da tabela <strong>do</strong> banco de da<strong>do</strong>s.<br />

Sobrescreva o méto<strong>do</strong> tableName() caso eles sejam diferentes. O méto<strong>do</strong> model() deve<br />

ser declara<strong>do</strong> dessa maneira para to<strong>do</strong>s as classes AR (a ser explica<strong>do</strong> em breve).<br />

Os valores <strong>do</strong> registro de um tabela podem ser acessa<strong>do</strong>s pelas propriedades da<br />

instância AR correspondente. Por exemplo, o código a seguir adiciona um valor ao campo<br />

title:<br />

$post=new Post;<br />

$post->title='um post de exemplo';

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

Saved successfully!

Ooh no, something went wrong!