Ajuda do CakePhp Afterfind ()
-
26-09-2019 - |
Pergunta
Eu tenho um resultado de pesquisa como este em uma matriz
Array
(
[0] => Array
(
[StatusMessage] => Array
(
[id] => 1
[pid] => 0
[message] => First Status Message
[item_id] => 1
[commenters_item_id] => 2
[created] => 2010-10-26 02:09:05
[modified] => 2010-10-26 02:09:09
)
[Item] => Array
(
[id] => 1
[module_id] => 1
[item_id] => 1
[User] => Array
(
[id] => 1
[first_name] => Harsha
[last_name] => Vantagudi
[username] => harshamv
[file] =>
)
)
[StatusMessageReply] => Array
(
[0] => Array
(
[id] => 2
[pid] => 1
[message] => Second Status Message
[item_id] => 1
[commenters_item_id] => 1
[created] => 2010-10-26 02:09:05
[modified] => 2010-10-26 02:09:09
[Item] => Array
(
[id] => 1
[module_id] => 1
[item_id] => 1
[User] => Array
(
[id] => 1
[first_name] => Harsha
[last_name] => Vantagudi
[username] => harshamv
[file] =>
)
)
)
)
)
)
Eu quero modificá -lo para torná -lo um pouco mais bonito, removendo certas coisas na matriz
Array
(
[0] => Array
(
[StatusMessage] => Array
(
[id] => 1
[pid] => 0
[message] => First Status Message
[item_id] => 1
[commenters_item_id] => 2
[created] => 2010-10-26 02:09:05
[modified] => 2010-10-26 02:09:09
)
[User] => Array
(
[id] => 1
[first_name] => Harsha
[last_name] => Vantagudi
[username] => harshamv
[file] =>
)
[StatusMessageReply] => Array
(
[0] => Array
(
[id] => 2
[pid] => 1
[message] => Second Status Message
[item_id] => 1
[commenters_item_id] => 1
[created] => 2010-10-26 02:09:05
[modified] => 2010-10-26 02:09:09
[User] => Array
(
[id] => 1
[first_name] => Harsha
[last_name] => Vantagudi
[username] => harshamv
[file] =>
)
)
)
)
)
Remova basicamente a parte do item e mude o usuário um nível
Solução
eu diria não. Ninguém vai ver ou se preocupar com isso, exceto você. E não há benefício real em alterar o formato interno dos dados do modelo. Pelo contrário, só pode causar problemas. Mantenha seus formatos de dados internos consistentes!
Se você acessa as informações do usuário usando $statusMessage['Item']['User']
ou $statusMessage['User']
Realmente não faz muita diferença. Se você insistir nisso, sugiro que você Junte a users
tabela diretamente para o status_messages
Tabela via items
A tabela na consulta para renunciar à etapa extra de buscar o item, e o bolo formará automaticamente os resultados da maneira que desejar.
Outras dicas
Se você deseja restringir as tabelas e / ou campos associados que são devolvidos, você deve olhar Containable
. Quando você tem uma grande pilha de coisas desinteressantes que você não precisa, pode facilitar o processamento um pouco por 'contendo' com o que deseja.
Mas como Deceze diz, não faça Apare -o puramente para a estética.