Mysql
 sql >> база данни >  >> RDS >> Mysql

Laravel и множество заявки за броене с помощта на Eloquent

Всеки път, когато извикате статичен метод в класа на модела си, той връща Fluent заявка като DB::table('yourmodeltable')->method . Ако имате това предвид, скоро ще разберете, че е възможно да направите всякакви заявки с моделите Eloquent.

Сега, за да постигнете по-голяма производителност, можете да използвате SQLs ДАТА() функция. Моят пример по-долу е непроверен, така че не се колебайте да го коригирате, моля.

// tomorrow -1 week returns tomorrow's 00:00:00 minus 7 days
// you may want to come up with your own date tho
$date = new DateTime('tomorrow -1 week');

// DATE(objecttime) turns it into a 'YYYY-MM-DD' string
// records are then grouped by that string
$days = Object::where('objecttime', '>', $date)
    ->group_by('date')
    ->order_by('date', 'DESC') // or ASC
    ->get(array(
        DB::raw('DATE(`objecttime`) AS `date`'),
        DB::raw('COUNT(*) as `count`')
    ));

foreach ($days as $day) {
    print($day->date . ' - '. $day->count);
}

Това трябва да отпечата нещо като:

2013-03-09 - 13
2013-03-10 - 30
2013-03-11 - 93
2013-03-12 - 69
2013-03-13 - 131
2013-03-14 - 185
2013-03-15 - 69

Редактиране:

Предложеният по-горе подход връща екземпляри на Eloquent Model, които може да изглеждат странни, особено ако var_dump($days) . Можете също да използвате list() на Fluent метод за постигане на същото.

$date = new DateTime('tomorrow -1 week');

// lists() does not accept raw queries,
// so you have to specify the SELECT clause
$days = Object::select(array(
        DB::raw('DATE(`objecttime`) as `date`'),
        DB::raw('COUNT(*) as `count`')
    ))
    ->where('created_at', '>', $date)
    ->group_by('date')
    ->order_by('date', 'DESC') // or ASC
    ->lists('count', 'date');

// Notice lists returns an associative array with its second and
// optional param as the key, and the first param as the value
foreach ($days as $date => $count) {
    print($date . ' - ' . $count);
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да деактивирате строг SQL режим в MySQL 5.7

  2. PHP/PDO:Подготвените оператори не работят при създаване на таблица?

  3. Как да стартирате процес в Swift 3.0 със стандартен вход

  4. Запитване на ИНФОРМАЦИОННА СХЕМА на MySQL:Защо? Как?

  5. Как да актуализирате стойността на външния ключ в базата данни на mysql