在控制器中将 PHP 查询转换为 Laravel

Posted

技术标签:

【中文标题】在控制器中将 PHP 查询转换为 Laravel【英文标题】:Convert PHP Query to Laravel in Controller 【发布时间】:2018-01-26 14:39:51 【问题描述】:

有人可以在 Laravel 中将此 php 代码转换为类似的东西吗?

$result = mysqli_query($conn, "SELECT birthday, count(*) FROM person group by birthday;");
  while ($row = mysqli_fetch_array($result, MYSQL_NUM)) 
      $yearvalues[$row[0]] = (int)$row[1];
  

像这样:

$female = Enroll::select(DB::raw("SUM(tot_enroll) as count"))
            ->orderBy(DB::raw('sy'))
            ->groupBy(DB::raw("(sy)"))
            ->where('gender','=', 'Female')
            ->get()->toArray();
            $female = array_column($female, 'count');

【问题讨论】:

【参考方案1】:

很简单,

您可以像这样在 laravel 中将您的 sql 查询转换为查询生成器:

DB::table('person')->select('birthday',DB::raw('COUNT(*) as count'))
                   ->groupBy('birthday')
                   ->get();

在您的情况下,您忘记选择 sygender 所以 orderBygroupBywhere 什么也不做,所以试试这个代码来获取您的数据。

DB::table('enrollments')->select(DB::raw('sy','gender','SUM(tot_enroll) as count'))
                   ->where('gender','=', 'Female')
                   ->groupBy('sy')
                   ->orderBy('sy')
                   ->get();
                   ->toArray();

【讨论】:

【参考方案2】:

我假设您的型号名称是用户。那你就可以这样写了。

User::select('birthday')->groupBy('person')->get()->count;

【讨论】:

以上是关于在控制器中将 PHP 查询转换为 Laravel的主要内容,如果未能解决你的问题,请参考以下文章

在 php 中将 datepicker 字符串转换为简单的日期格式

在 laravel 控制器中将数组转换为 json

如何使用 PHP 在 Laravel 7 中将 PascalCase 字符串转换为可用的 slug?

如何在php laravel中将数组键转换为随机字符串

在 Laravel 中将二维数组转换为 json 对象

在 Laravel 中将数组转换为集合