Yii2 Relations - PHP - Fórum iMasters
By Mateus Silva, August 9, 2017 in PHP
Recentemente iniciei um projeto e optei por usar o Yii2 no mesmo (utilizo o yii1 no serviço, já estava familiarizado), porém... Notei que nas relations do Yii2, diferente do Yii1, o framework executa 2 queries... por exemplo:
SELECT interation.title, interation.message, user.name, user.email
FROM interations AS interation
LEFT JOIN users AS user ON (user.id = interation.user_id)
Ele executaria:
SELECT interation.title, interation.message, user.id
SELECT * FROM users WHERE id = (id_obtido_a_cima)
Ou seja, enquanto no Yii1 ele cria a relation já buscando todos os dados que preciso, no Yii2, no join, ele apenas trás a FK da tabela que estou relacionando e posteriormente executa um SELECT * pela FK que retornou do join... nada interessante se pensando pra um sistema com muitas linhas de um grid, por exemplo, que em 10 linhas faria 20 consultas, performance vai lá pra vala! Acredito que tenham feito esta atualização por algum motivo que eu desconheço, alguém saberia como "burlar" isso, ou o motivo de ter sido feito desta maneira nesta nova versão?