我如何从我的数据库中计算、分组和显示年龄

How can I Count, group and show age from my database

我有一个包含 100 条记录的 table 组织图。在这个 table 组织图中,我有 4 列:

这里是我的控制器:

 public function index(Request $request)
{
    $listCollaborateurs = Organigramme::all();

    foreach ($listCollaborateurs as $collaborateur) {

        $now = Carbon::now();
        $date_birth = Carbon::createFromFormat('Y-m-d', $collaborateur->date_birth);
        $age = $now->diffInYears($date_birth);

        $Number1 = age
        ->where(age between 1 and 10)
        ->count();

        $Number2 = age
        ->where(age between 11 and 20)
        ->count();

       return view('home',['Number1' => $Number1, 'Number2' => $Number2]);

    }

现在我想统计、分组并在我的 blade 中显示年龄在 [1 - 10]、[11 - 20]

之间的所有记录

我需要帮助!

您可以这样做: 在您的 Organigramme 模型中 class 编写一个 returns 年龄属性的函数。喜欢:

protected $appends = ['age'];

public function getAgeAttribute(){
    $now = Carbon::now();
        $date_birth = Carbon::createFromFormat('Y-m-d', $this->date_birth);
       return  $now->diffInYears($date_birth);
}

在你的控制器中:

$listCollaborateurs = Organigramme::all();
$number1 =$listCollaborateurs->whereBetween('age',[1,10])->count() ;
$number2 = $listCollaborateurs->whereBetween('age',[11,20])->count();

现在告诉我是否有效