获取Laravel的记录总数?

mpe*_*pen 6 php mysql laravel laravel-4

MySQL有一个功能,用于获取查询将在没有限制的情况下返回的记录总数,SQL_CALC_FOUND_ROWS.Laravel支持这个吗?

目前我必须在两个查询中执行此操作:

public function dataTable() {
    $bookings = DB::table('bookings')
        ->limit(Input::query('iDisplayLength'))
        ->offset(Input::query('iDisplayStart'))
        ->get();
    $count = $bookings = DB::table('bookings')
        ->count();
    return Response::json([
        'iTotalRecords' => $count,
    ]);
}
Run Code Online (Sandbox Code Playgroud)

这不仅会降低效率,而且一旦我添加了所有->where()标准,就会有很多冗余代码.

gia*_*our 4

对于任何复杂的或特定于供应商的查询,您通常必须直接使用 传递查询DB::raw(),例如:

$bookings = DB::table('bookings')
    ->select(DB::raw('SQL_CALC_ROWS_FOUND ...
Run Code Online (Sandbox Code Playgroud)

  • 我尝试了 `DB::table('foo') ->select(array(DB::raw('SQL_CALC_FOUND_ROWS *'))) ->toSql();` 它返回 `select SQL_CALC_FOUND_ROWS * from \`foo\`` (2认同)