Bonjour,
Voila je rencontre un petit problème avec mon code.
Alors voilà, en gros j'ai un panel support sur mon site, et on peut associer une catégorie à un utilisateur.
Mais, lorsqu'on est admin, il faut qu'il ait accès à toutes les catégories, avec celles qui lui sont associées en évidence.
Donc ca marche plutôt bien (requête admin) :
$r = \DB::table('support_categories')
->leftJoin('support_tickets', 'support_tickets.support_category_id', '=', 'support_categories.id')
->select('support_categories.*')
->addSelect(\DB::raw('`support_categories`.`id` IN (SELECT `support_category_id` FROM `support_associations` WHERE `user_id` = 2) AS `attributed`'))
->addSelect(\DB::raw('COUNT(`support_tickets`.`id`) AS `count`'))
->groupBy('support_categories.id')
->orderBy('attributed', 'DESC')
->orderBy('support_categories.category')
->orderBy('support_categories.title')
->get();
Qui fait la requête suivante :
SELECT support_categories.*, support_categories.id IN(SELECT support_category_id FROM support_associations WHERE user_id = 2) AS attributed, COUNT(support_tickets.id) AS count FROM support_categories LEFT JOIN support_tickets ON support_tickets.support_category_id = support_categories.id GROUP BY support_categories.id ORDER BY attributed DESC, support_categories.category, support_categories.title;
Le problème, c'est que le user_id = 2 doit pouvoir changer. Or je n'ai pas réussi à trouver un moyen de pouvoir le passer via la requête préparée (un "?" ou un ":user_id").
Merci d'avance à tous :)
Hello,
Question bête, tu ne peux pas utiliser les méthodes Eloquent avec les relations ? Ce sera probablement plus simple et plus clair à écrire non ?
Bah ca me semble compliqué :/
Bah je pensais le faire propremenent avec une requête préparée