Как создать запрос для гистограммы Google в laravel?

#laravel

#laravel

Вопрос:

Это гистограмма, которую я хочу нарисовать, и я поражен запросами

введите описание изображения здесь

Моя база данных выглядит так, где я хочу показать население страны 2020 года

 id  | country_name | population | created_at
 1  | USA          | 2000000000 | 2020-02-04
 2  | China        | 2200000000 | 2020-02-04
 3  | Russia       | 12000000   | 2020-04-02
  

Мой запрос выглядит следующим образом. Я просто пытаюсь создать запрос, но не получаю результата.Возможно, есть какая-то ошибка.Сначала я сделал переменную $countries, чтобы получить все страны.

 public function barChart(){
     $countries=Country::get();
     $graphic_header=['Year'];   
     $countrydata=[];
     $actionDate=[];
     $country_name=[];
     foreach ($countries as $country) {
         array_push($country_name, $country->name);
         array_push($actionDate, date('Y', strtotime($country->created_at)));
         $actionDate = array_unique($actionDate);
        }
     $graphic_header=array_merge($graphic_header,$country_name); //Dynamic Header
     array_push($countrydata,$graphic_header);
     foreach($actionDate as $d) {
         $d = [$d];
         $d = array_pad($d, sizeof($graphic_header), 0);
         array_push($data, $d);
       }
     foreach ($countries as $country){
         $date = date('Y', strtotime($country->created_at));
         foreach ($data as $in =>$gd){
            if ($date == $gd[0]) {
               $index = (array_search($country->country_name, $graphic_header));
               $country_data[$in][$index] = $country->population;
            }
         }
      }
    return response()->json([
        'data'=> $country_data,
    ]);

 }
  

Ответ №1:

просто используйте этот метод сбора groupBy

  $countries=Country::get();
 $countries = $countries->groupBy('country_name');
 $countries->toArray();