J'ai développé le code suivant,

public function getInCalls($sip_id){  

      $resultsTotalInCalls =  DB::table('xxxx')
    ->whereDate('created', '=', date('Y-m-d'))
    ->where(function ($query) {

    $query->where([
    ['event', '=', 'ENTERQUEUE'],
    ['agent', '=', $sip_id]

]);
    })

    ->get();  

     $numberofInCalls =  count($resultsTotalInCalls);   

     return $numberofInCalls;

}

Mais j'ai un index non défini $ sip_id dans la ligne ['agent', '=', $sip_id]. Comment passer $ sip_id à la fonction? Je n'ai aucune idée.

0
Chandimal Harischandra 23 nov. 2017 à 11:37

4 réponses

Meilleure réponse

Les fermetures doivent importer des variables de l'extérieur.

->where(function ($query) use ($sip_id) {
1
Laraleg 23 nov. 2017 à 08:40

Vous devriez essayer ceci:

public function getInCalls($sip_id){  

          $resultsTotalInCalls =  DB::table('xxxx')
        ->whereDate('created', '=', date('Y-m-d'))
        ->where(function ($query) use($sip_id) {

        $query->where([
        ['event', '=', 'ENTERQUEUE'],
        ['agent', '=', $sip_id]

    ]);
        })

        ->get();  

         $numberofInCalls =  count($resultsTotalInCalls);   

         return $numberofInCalls;

    }
0
AddWeb Solution Pvt Ltd 23 nov. 2017 à 08:38
public function getInCalls($sip_id){
    $resultsTotalInCalls =  DB::table('abc')
        ->whereDate('created', '=', date('Y-m-d'))
        ->where(function ($query) use ($sip_id) {
            $query->where([ ['event', '=', 'ENTERQUEUE'], ['agent', '=', $sip_id]  ]); 
        })
        ->get();  
    $numberofInCalls =  count($resultsTotalInCalls);
    return $numberofInCalls;  
}
0
Surabhi 23 nov. 2017 à 08:52

Si vous préférez utiliser des fermetures, vous pouvez importer la variable dans la portée actuelle (le mot clé use):

https://stackoverflow.com/a/11086796/3520693

public function getInCalls($sip_id){

    $resultsTotalInCalls =  DB::table('xxxx')
        ->whereDate('created', '=', date('Y-m-d'))
        ->where(function ($query) use ($sip_id) {

            $query->where([
                ['event', '=', 'ENTERQUEUE'],
                ['agent', '=', $sip_id]

            ]);
        })

        ->get();

    $numberofInCalls =  count($resultsTotalInCalls);

    return $numberofInCalls;

}
0
Guja1501 23 nov. 2017 à 08:51
47450900