Bonjour,
Voila je rencontre un petit problème avec mon code.
J'aimerai traduire ma requete SQL à Eloquent mais je n'y arrive pas...
select commentaires.created_at AS commentaires_created_at, users.*, commentaires.* from `commentaires` inner join `users` on `commentaires`.`id_user` = `users`.`id` inner join `articles` on `commentaires`.`id_article` = `articles`.`id` where numero = $numero AND compteur = (SELECT MAX(compteur) FROM commentaires inner join `articles` on `commentaires`.`id_article` = `articles`.`id` WHERE articles.numero = $numero)
Pour le moment je n'arrive pas à faire mon second condition avec ma seconde requete...
J'ai essayé pas mal de truc mais j'ai toujours une erreur, ou soit la requete disparait...
------------ EDIT 1 ----------------
return commentaire::join('users', 'commentaires.id_user', '=', 'users.id')->where('id_article', '=', $numero)->find(commentaire::max('compteur'));
Non ça marche pas, ça me fait ça :
select * from `commentaires` inner join `users` on `commentaires`.`id_user` = `users`.`id` where `id_article` = '1' and `commentaires`.`id` = '15' limit 1
Le 15 correspond au nombre du compteur... je me rapproche mais toujours pas...
Si vous avez des idées je suis preneur, merci ;)
----------- EDIT 2 -------------
Je suppose que je suis arriver à une solution, mais je suis vraiment pas sur que ça soit de cette façon qu'il faut faire, je ne sais pas à quoi correspond le firstOrNew...
return commentaire::join('users', 'commentaires.id_user', '=', 'users.id')->where('id_article', '=', $numero)->firstOrNew(['compteur' => commentaire::max('compteur')]);
Et du coup avant ou dois-je placer mes alias ?
['commentaires.created_at AS commentaires_created_at', 'users.*']
---------- EDIT 3 ----------
Qu'en pensez vous ?
return commentaire::select(['commentaires.created_at AS commentaires_created_at', 'users.*', 'commentaires.*'])->join('users', 'commentaires.id_user', '=', 'users.id')->where('id_article', '=', $numero)->firstOrNew(['compteur' => commentaire::max('compteur')]);
EDIT 4 :
Ca ne fonctionne pas ^^
Help me please...