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.

Deve ser um vetor com pares nome-valor.<br />

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

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

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

Consultas Relacionais Utilizan<strong>do</strong> Named Scopes<br />

Nota: O suporte a named scopes está disponível a partir da versão 1.0.5.<br />

As consultas relacionais também podem ser utilizadas em conjunto com named scopes.<br />

Isso pode ser feito de duas formas. Na primeira, os named scopes são aplica<strong>do</strong>s aos<br />

modelos principais. Na segunda forma os named scopes são aplica<strong>do</strong>s aos modelos<br />

relaciona<strong>do</strong>s.<br />

No código a seguir vemos como aplicar named scopes no modelo principal:<br />

$posts=Post::model()->published()->recently()->with('comments')->findAll();<br />

Vemos que é bem pareci<strong>do</strong> com a forma não-relacional. A única diferença é uma<br />

chamada ao méto<strong>do</strong>with() após a cadeia de named scopes. Essa consulta retornará os<br />

posts publica<strong>do</strong>s recentemente, junto com seus comentários.<br />

O código a seguir mostra como aplicar named scopes em objetos relaciona<strong>do</strong>s.<br />

$posts=Post::model()->with('comments:recently:approved')->findAll();<br />

A consulta acima irá retornar to<strong>do</strong>s os posts, junto com os seus comentário aprova<strong>do</strong>s.<br />

Note que commentsrefere-se ao nome <strong>do</strong> relacionamento, enquanto recently e approved<br />

referem-se a <strong>do</strong>is named scopes declara<strong>do</strong>s na classe <strong>do</strong> modelo Comment. O nome <strong>do</strong><br />

relacionamento e os named scopes devem ser separa<strong>do</strong>s por <strong>do</strong>is-pontos (":").<br />

Named scopes também podem ser especifica<strong>do</strong>s com a opção with, descrita acima. No<br />

exemplo a seguir, a propriedade $user->posts retorna to<strong>do</strong>s os comentários aprova<strong>do</strong>s<br />

<strong>do</strong>s posts.<br />

$posts=Post::model()->with('comments:recently:approved')->findAll();<br />

A consulta acima irá retornar to<strong>do</strong>s os posts, junto com os seus comentário aprova<strong>do</strong>s.<br />

Note que comments refere-se ao nome <strong>do</strong> relacionamento, enquanto recently e approved<br />

referem-se a <strong>do</strong>is named scopes declara<strong>do</strong>s na classe <strong>do</strong> modelo Comment. O nome <strong>do</strong><br />

relacionamento e os named scopes devem ser separa<strong>do</strong>s por <strong>do</strong>is-pontos (":").<br />

Named scopes também podem ser especifica<strong>do</strong>s com a opção with, descrita acima. No<br />

exemplo a seguir, a propriedade $user->posts retorna to<strong>do</strong>s os comentários aprova<strong>do</strong>s<br />

<strong>do</strong>s posts.

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

Saved successfully!

Ooh no, something went wrong!