在控制器中将 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();
在您的情况下,您忘记选择 sy
和 gender
所以 orderBy
、groupBy
和 where
什么也不做,所以试试这个代码来获取您的数据。
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 字符串转换为简单的日期格式