2017-06-29 2 views
0

Je souhaite récupérer des enregistrements à partir d'une table pasien_polispolyclinic_id correspond au id du tableau polyclinics.Comment faire pour encapsuler des requêtes multiples dans une seule clause where dans laravel

je peux y parvenir en faisant ceci:

$polyclinic = Polyclinic::findOrFail($id); 
    $pasienpoli = Polyclinic::find($id)->PasienPoli; 

la prochaine chose que je veux filtrer est les created_at dossiers, je veux seulement aller chercher les documents créés aujourd'hui. Cette requête fonctionne bien:

$pasienpoli = DB::table('pasien_polis')->whereDate('created_at', '=', \Carbon\Carbon::today()->toDateString())->get(); 

le problème est venu quand je voulais combiner ces deux filtres en une seule clause where.

J'ai essayé ce qui suit, mais il retourne NULL:

$polyclinic = Polyclinic::findOrFail($id); 
$match = Polyclinic::find($id)->PasienPoli; 

$pasienpoli = DB::table('pasien_polis')->where([ 
        ['polyclinic_id', '=', '$match'], 
        ['created_at', '=', \Carbon\Carbon::today()->toDateString()] 
               ])->get(); 

Toute aide s'il vous plaît?

MISE À JOUR:

STRUCTURE OF <code>pasien_polis</code>

STRUCTURE OF <code>polyclinics</code>

+0

S'il vous plaît montrer votre structure de table pour les deux tables (pasien_polis, polycliniques) –

+0

J'ai mis à jour le poste et a affiché les structures de table. @AddWebSolutionPvtLtd –

Répondre

1

Je pense que vous pouvez essayer:

$pasienpoli = DB::table('pasien_polis') 
         ->join('polyclinics','polyclinics.id','=','pasien_polis.polyclinic_id') 
         ->where([ 
         ['pasien_polis.polyclinic_id', '=', $id], 
         ['pasien_polis.created_at', '=', \Carbon\Carbon::today()->toDateString()]]) 
         ->get(); 

Espoir cette aide pour vous!

+0

obtiennent toujours le même résultat. J'ai essayé de changer ce polyclinics.id à id, j'ai l'erreur mysql. dans aptana il est dit erreur de syntaxe, mais je pense que ce n'est pas le vrai problème. Je pense que j'ai réglé les ralations correctement, mais je n'arrive toujours pas à le faire fonctionner correctement. –

+0

J'ai accepté cette réponse parce que je l'ai eu en travaillant en modifiant cette réponse. Merci beaucoup. –

0

RESOLU en modifiant la réponse @AddWeb Solution Pvt (merci beaucoup pour cela).
ici est ma requête de travail final:

$pasienpoli = DB::table('pasien_polis') 
    ->join('polyclinics','polyclinics.id','=','pasien_polis.polyclinic_id') 
    ->where([ 
    ['pasien_polis.polyclinic_id', '=', $id], 
    [DB::raw('DATE(pasien_polis.created_at)'), '=', \Carbon\Carbon::today()->toDateString()] 
    ])->get();