Меня просят загрузить данные из одной таблицы, как показано ниже:
=================================
|id |dept | response | created_at |
=================================
|1 |FO | GOOD | 2018-05-20 |
|2 |FO | GOOD | 2018-05-20 |
|3 |IT | GOOD | 2018-05-20 |
|4 |FO | BAD | 2018-05-20 |
|5 |IT | GOOD | 2018-05-20 |
|6 |LO | BAD | 2018-05-20 |
|7 |IT | GOOD | 2018-05-20 |
|8 |IT | GOOD | 2018-05-21 |
|9 |LO | GOOD | 2018-05-21 |
=================================
они хотят, чтобы я отображал только записи созданные_на 2018-05-20.и желаемое отображение вывода в блейде выглядит следующим образом:
FO
GOOD 2
BAD 1
IT
GOOD 3
BAD 0
LO
GOOD 0
BAD 1
, когда я использую команду select Different, он отображает только одну строку данных ответа (только GOOD
).То же самое происходит, когда я использую groupBy
Вот мои текущие коды:
Контроллер:
$date = new Carbon('2018-05-20');
$result = Result::select('dept', 'response')->where('created_at', '=', $date->toDateString())->groupby('dept')->get();
blade-сервер:
@foreach($result as $result)
{{$result->dept}}</BR>
{{$result->response}}</br></br>
@endforeach
Вывод, который я получаю:
FO
GOOD
IT
GOOD
LO
GOOD
Я еще не делаю count
, потому что я все еще получаю этот нежелательный результат.Есть ли способ достичь желаемого запроса с этой единственной таблицей?
РЕДАКТИРОВАТЬ I: На основании ответа Yrv16's
мой контроллер выглядит следующим образом:
namespace App\Http\Controllers;
use App\Result;
use Carbon\Carbon;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
public function index()
{
$date = new Carbon('2018-05-20');
$results = Result::select('dept', 'response', \DB::raw('COUNT(*) as count'))
->where('created_at', '=',$date->toDateString())
->groupby('dept','response')
->get();
$results = $results->groupBy('dept');
return view('result.index', compact ('results'));
}
и мой блейд:
@foreach($results as $result)
{{$result->dept}}</BR>
{{$result->response}}</br></br>
@endforeach
это дает мне пустую страницу.но когда я изменяю это where('created_at', '=', $date->toDateString())
на where('created_at', '>=', $date->toDateString())
, я получаю эту ошибку Property [dept] does not exist on this collection instance.