Le problème de la non-utilisation correcte de la clause WhereNotExists dans Laravel 8 Eloquent reste non résolu
P粉287726308
P粉287726308 2023-09-05 16:08:35
0
1
380
<p>J'ai deux tables, l'une est une table avec différents utilisateurs et l'autre est une table de factures appelée "factures" qui a un ID utilisateur de clé étrangère que j'appelle client_id. Ce que je veux obtenir, c'est le nombre de clients créés par un certain administrateur et qui n'ont pas encore de facture. Voici le code que j'ai essayé : </p> <pre class="brush:php;toolbar:false;">$clients = User::select('id') ->where([['created_by',$membre_id],['role','Client']]) ->ouOù([['updated_by',$membre_id],['role','Client']]) ->whereNotExists(fonction($requête) { $query->select(DB::raw('client_id')) ->from('factures') ->where('created_by',$member_id); })->get();</pre> <p>Mais cette requête me renvoie tous les clients créés par $member_id, sans exception. Y a-t-il un problème avec ma requête ? </p>
P粉287726308
P粉287726308

répondre à tous(1)
P粉670838735

Avez-vous essayé ce qui suit :

$clients = User::select('id')
    ->where(function($query) use($member_id){
        $query->where([['created_by',$membre_id],['role','Client']])
            ->orWhere([['updated_by',$membre_id],['role','Client']])
    })
    ->whereNotExists(function($query) use($member_id){
        $query->select(DB::raw('client_id'))
            ->from('factures')
            ->where('created_by',$member_id);
    })
    ->get();
}

Cette réponse n'applique que la OR条件,并且其结果与第三个条件的ANDcombine entre la première et la deuxième conditions (created_by et update_by).

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!