В моем приложении laravel (7.x) у меня есть общая функциональность для отображения количества всех активных и неактивных записей во всех модулях. Поэтому я обязан повторять одну и ту же функциональность на каждом модуле.
Например: у Device, DeviceType, DeviceCompany, etc
моделей один и тот же метод с именем _getTotal
, и везде метод _getTotal
выполняет одну и ту же работу.
Device. php
class Device extends Model
{
protected $table = 'devices';
...
public function _getTotal($status = \Common::STATUS_ACTIVE)
{
return self::where([
'status' => $status
])->count() ?? 0;
}
}
DeviceType. php
class DeviceType extends Model
{
protected $table = 'device_types';
...
public function _getTotal($status = \Common::STATUS_ACTIVE)
{
return self::where([
'status' => $status
])->count() ?? 0;
}
}
Я пытался поместить этот метод в Base Model
, но я думаю, что это не может быть хорошая практика. Я прав ..?
Есть ли способ сделать этот метод _getTotal
общим методом для всех модулей ..?