Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да получите записа, ако Count е нула в Laravel

MySQL няма да попълни месеците, които не са налични, просто ще групира по това, което имате на разположение и след това ще ви даде тези резултати.

Това, което бихте могли да направите, е да използвате DatePeriod и Collection на Laravel клас:

$results = DB::table('bookings')
    ->selectRaw("DATE_FORMAT(created_At,'%Y-%m-01') as monthNum, count(*) as totalbook")
    ->orderBy('monthNum')
    ->groupBy('monthNum')
    ->get();

$results = collect($results)->keyBy('monthNum')->map(function ($item) {
    $item->monthNum = \Carbon\Carbon::parse($item->monthNum);

    return $item;
});

$periods = new DatePeriod($results->min('monthNum'), \Carbon\CarbonInterval::month(), $results->max('monthNum')->addMonth());

$graph = array_map(function ($period) use ($results) {

    $month = $period->format('Y-m-d');

    return (object)[
        'monthNum'  => $period->format('M Y'),
        'totalbook' => $results->has($month) ? $results->get($month)->totalbook : 0,
    ];

}, iterator_to_array($periods));

Моля, обърнете внимание, че актуализирах monthNum в заявката, тъй като ще бъде преформатирана по-късно.

Също така трябва да използвате необработените маркери на блейд ({!! !!} ) за това като {{ $dat->totalbook }} трябва да работи напълно добре.

Надявам се това да помогне!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:в mysql

  2. Защо и къде да използваме ИНДЕКС - плюсове и минуси

  3. Как да стартирате MySQL сървър на Windows XP

  4. Тире в имената на колони в MySQL DB

  5. Създаване на MySQL пространствена колона - Тип данни на точка с lat long без използване на таблицата Alter