Problema com displayField

9 views
Skip to first unread message

Fábio

unread,
Jun 25, 2009, 4:17:07 PM6/25/09
to Cake PHP Português
Opa pessoal.
Tenho o Model X e Y
O model X pertence ao Model Y
No controller do X, eu fiz um find('list') pra alimentar um select que
estou
fazendo. Porém, na tabela X há apenas os campos id, y_id
No Y que tem o name... E é esse name que eu devo mostrar nos options
do meu
select. Só que quando lá no X eu faço um $displayField = array
('Y.name'),
ele diz que a coluna é desconhecida.
Como posso fazer pra exibir o name?
Obrigado a todos.

Altieres

unread,
Jun 27, 2009, 2:38:39 PM6/27/09
to Cake PHP Português
Fábio,

Até onde sei realmente o find list não faz joins...
Não consegui entender muito bem porque você precisa disso, visto que
os names de Y correspondem aos ids de Y, mas vamos lá...

Faça um find all normalmente, que retornará algo como:

# $a = array(
# array(
# 'User' => array(
# 'id' => 2,
# 'group_id' => 1,
# 'Data' => array(
# 'user' => 'mariano.iglesias',
# 'name' => 'Mariano Iglesias'
# )
# )
# ),
# array(
# 'User' => array(
# 'id' => 14,
# 'group_id' => 2,
# 'Data' => array(
# 'user' => 'phpnut',
# 'name' => 'Larry E. Masters'
# )
# )
# ),
# array(
# 'User' => array(
# 'id' => 25,
# 'group_id' => 1,
# 'Data' => array(
# 'user' => 'gwoo',
# 'name' => 'The Gwoo'
# )
# )
# )
# );

Fazendo:
# $result = Set::combine($a, '{n}.User.id', '{n}.User.Data.name');

Você terá o que deseja:
# Array
# (
# [2] => Mariano Iglesias
# [14] => Larry E. Masters
# [25] => The Gwoo
# )
# */

referência:
http://book.cakephp.org/view/662/combine

att,

---
Altieres Lopes
WebGoal.com.br
Simplificando Softwares
Reply all
Reply to author
Forward
0 new messages