Используйте sql запросы в Laravel 6 для подсчета количества работников в каждом отделе - PullRequest
0 голосов
/ 16 октября 2019

Я новичок в Laravel и SQL. У меня есть две модели (работник и отдел), и каждая модель имеет отношения один ко многим. У каждой модели есть таблицы рабочих столов и отделов. Мои вопросы:

  1. Можем ли мы использовать SQL-запрос в laravel 6 для подсчета количества работников в каждом отделе?
  2. где мы можем использовать этот SQL-запрос внутри контроллера или модели?

Я использовал этот запрос внутри контроллера, но выдает ошибку, что с ним не так?

public function count()
{
   SELECT COUNT(id), department FROM Worker GROUP BY department; 
}

Ответы [ 2 ]

2 голосов
/ 16 октября 2019

Ваша Department Модель:

class Department extends Model
{

    public function workers()
    {
        return $this->hasMany('App\Worker');
    }

}

Итак, вы подсчитываете, сколько работников в каждом отделе, например:

$departments = App\Department::withCount('workers')->get();

См. Также :

Подсчет связанных моделей

Лучшие практики Laravel

0 голосов
/ 16 октября 2019

Чтобы использовать необработанный запрос в контроллере Laravel, вы должны объединить его в построителе запросов. Это будет работать:

DB::raw("SELECT COUNT(id), department FROM Worker GROUP BY department");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...