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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

instruções JOIN, para aumentar a performance. Essa opção está disponível desde a<br />

versão 1.0.3.<br />

• group: representa a cláusula GROUP BY. Não tem nenhum valor por padrão. Note<br />

que, para evitar conflitos entre nomes de colunas iguais, referencias a colunas<br />

precisão ser identificadas por umaliasToken, (por exemplo, ??.age).<br />

• having: representa a cláusula HAVING. Não tem nenhum valor por padrão. Note que,<br />

para evitar conflitos entre nomes de colunas iguais, referencias a colunas precisão<br />

ser identificadas por um aliasToken, (por exemplo, ??.age DESC). Esta opção está<br />

disponível desde a versão 1.0.1.<br />

• index: o nome de uma coluna cujos valores devem ser utiliza<strong>do</strong>s como chaves no<br />

vetor que retorna os objetos relaciona<strong>do</strong>s. Sem a utilização dessa opção, o vetor<br />

retorna<strong>do</strong> tem índices numéricos inician<strong>do</strong> em 0. Esta opção só pode ser utilizada<br />

em relacionamentos <strong>do</strong> tipo HAS_MANY e MANY_MANY. Ela está disponível desde<br />

a versão 1.0.7.<br />

Além dessas, as opções abaixo podem ser utilizadas para certos relacionamentos quan<strong>do</strong><br />

utiliza<strong>do</strong> o lazy loading:<br />

• limit: limite de registros a ser seleciona<strong>do</strong>. Essa opção NÂO pode ser utilizada em<br />

relacionamentos <strong>do</strong> tipo BELONGS_TO.<br />

• offset: posição, em relação aos resulta<strong>do</strong>s encontra<strong>do</strong>s, que os registros serão<br />

seleciona<strong>do</strong>s. Essa opção NÂO pode ser utilizada em relacionamentos <strong>do</strong> tipo<br />

BELONGS_TO.<br />

Abaixo alteramos a declaração <strong>do</strong> relacionamento posts em User, incluin<strong>do</strong> algumas das<br />

opções descritas acima:<br />

class User extends CActiveRecord<br />

{<br />

public function relations()<br />

{<br />

return array(<br />

'posts'=>array(self::HAS_MANY, 'Post', 'authorID',<br />

'order'=>'??.createTime DESC',<br />

'with'=>'categories'),<br />

'profile'=>array(self::HAS_ONE, 'Profile', 'ownerID'),<br />

);<br />

}<br />

}<br />

Agora, se acessarmos $author->post, obteremos os posts desse autor, ordena<strong>do</strong>s pela<br />

sua data de criação em ordem descendente. Cada instância de post virá com suas<br />

categorias já carregadas.

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

Saved successfully!

Ooh no, something went wrong!