Besoin d'aide ?

Requête Eloquent whereExists retourne un tableau vide

  • Avatar de ArnoldAtse
    Membre depuis :
    31/12/2018
    Messages :
    1

    Bonsoir, je souhaite à l'aide d'Eloquent réaliser cette requêtes:

    select from articles where exists (select from article_indent inner join indents on article_indent.indent_id = indents.id where article_indent.article_id = articles.id and indents.step < 5 and indents.step > 0) order by articles.created_at asc

    Je la fait comme ceci:

    Article::whereExists(function ($query) {
    $query
    ->from('article_indent')
    ->join('indents', 'article_indent.indent_id', '=', 'indents.id')-
    >where('article_indent.article_id', 'articles.id')
    >->where('indents.step', '<', 5)->where('indents.step', '>', 0);
    })->orderBy('articles.created_at', 'asc')->get();

    Mais cette requête me retourne un tableau de collections vide bien que je devrais obtenir une liste, car l'orsque j'exécute cette requête:

    DB::select('select from articles where exists (select from article_indent inner join indents on articl_indent.indent_id = indents.id where article_indent.article_id = articles.id and indents.step < 5 and indents.step > 0) order by articles.created_at` asc');

    j'ai bien comme résultats ma liste d'articles souhaités.

    Ou se trouve l'erreur dans ma syntax?
    Vous me rendrez un grands service si vous trouvez une solution à mon problème. Merci d'avance

  • Avatar de LaurentMARLIN
    Membre depuis :
    20/10/2014
    Messages :
    2

    Je comprends pas déjà pourquoi tu ne mets pas une relation dans ton modele

    https://laravel.com/docs/5.7/eloquent-relationships

    c'est la force d'Eloquent ...

Vous ne pouvez pas répondre à ce sujet.