2016-03-19 1 views
0

Laravel Abfrage:Meine Suche Arbeit in mysql, aber nicht arbeiten mit Laravel eloquent

$studentsFee = \FeeModal::query(); 
$studentsFee->groupBy('main_campus_id', 'session_id', 'class_info_id', 'section_id', 'stage_id') 
       ->selectRaw('count(student_id) as student_strength,SUM(IF(paid_amount>0,1,0)) as submit_students,SUM(IF(paid_amount=0,1,0)) as not_submit_students, sum(paid_amount) as submit_amount') 
       ->with('sessionMode', 'section', 'classInfo', 'stage')->get(); 

dd(count($studentsFee). ' Records'); 

Ergebnis: 0 Datensätze

generiert Query by ->toSql();

string(281) "select count(student_id) as student_strength,SUM(IF(paid_amount>0,1,0)) as submit_students,SUM(IF(paid_amount=0,1,0)) as not_submit_students, sum(paid_amount) as submit_amount from `fee` group by `main_campus_id`, `session_id`, `class_info_id`, `section_id`, `stage_id`" 

und wenn ich diese Abfrage ausführen in mysql gibt es 18 Zeilen zurück;

Antwort

0

Ich glaube, Sie vergessen haben, das Ergebnis der Abfrage zu einer Variablen zuzuweisen:

$studentsQuery = \FeeModal::query(); 
$studentsFee = $studentsQuery->groupBy('main_campus_id', 'session_id', 'class_info_id', 'section_id', 'stage_id') 
       ->selectRaw('count(student_id) as student_strength,SUM(IF(paid_amount>0,1,0)) as submit_students,SUM(IF(paid_amount=0,1,0)) as not_submit_students, sum(paid_amount) as submit_amount') 
       ->with('sessionMode', 'section', 'classInfo', 'stage')->get(); 

dd(count($studentsFee). ' Records'); 
+0

Dank AlexW für Ihre Antwort: aber ich nicht bekommen Ihr Punkt .. was Sie danach fragen wollen ... Wo ich vergessen habe, das Abfrageergebnis einer Variablen zuzuordnen ... –

+0

Was ich sage ist, dass, wenn es sich nicht um ein Feature von Eloquent handelt, dem ich nichts achte, die Ergebnisse von 'get' einer Variable zugewiesen werden müssen (In meinem Beispiel rufe ich das * result * '$ studentsFee' an. In Ihrem Beispiel ist '$ studentsFee' Ihre * Query *. Wenn Sie' count' auf einem * query * -Objekt aufrufen, wird es nicht zurückkehren Die Anzahl der * Ergebnisse * der Abfrage - es wird versuchen, die Abfrage selbst zu "zählen". – alexw