laravel i want to show count and with there name

Viewed 39

laravel I'm trying to get count row and its value.

model name Result

example THIS DATA STORED IN DATABASCE

NAME    SUBJECT        RESULT 
 A        HX            PASS  
 B        HX            FAIL
 C        DX            PASS
 D        DX            PASS
 E        MR            FAIL

I want to show value like blade this

in table

SUBJECT   PASS    FAIL
  HX       1       1
  DX       2       0
  MR       0       1 
1 Answers

it is work for me:

$result = Subject::groupBy('subject')
->selectRaw("subject, SUM(IF(result LIKE 'pass', 1, 0) ) as PASS, SUM(IF(result LIKE 'fail', 1, 0) ) as FAIL")
->get();

or write your condition in SUM:

->selectRaw("subject, SUM(result LIKE 'pass') as PASS, SUM(result LIKE 'fail') as FAIL")

not: if you use COUNT it's not work.

bro if it's possible use Boolean for result (1 = 'pass', 0 = 'fail').

if you have any error you can use:

->selectRaw("`subject`, SUM(`result` LIKE 'pass') as PASS, SUM(`result` LIKE 'fail') as FAIL")
Related