Laravel 7 hasMany добавить атрибут при необходимости
Есть модель
class Job extends Model
{
protected $appends = ['views_count'];
public function getViewsCountAttribute()
{
return $this->jobViews->sum('views_count');
}
public function jobViews()
{
return $this->hasMany('App\Models\JobView');
}
}
Вот контроллер по получению данных
class JobController extends Controller
{
/**
* Display a listing of the resource.
*
* @return JsonResponse
*/
public function index()
{
return response()->json([
'success' => true,
'data' => auth()->user()->jobs()->get()
], 200);
}
}
Я получаю необходиммый аттрибут views_count для каждого екземпляра Job.
Но как я понимаю, этот атрибут будет подтягиватся каждый раз когда я буду обращатся к экзепляру модели Job. Подсчеты аттрибута могут быть весьма сложные, а выводить их мне нужно всего в нескольких местах. Как отключить вывод атрибута по умолчанию и добавлять к экземплярам модели только тогда, кода мне нужно? Пробывал разные примеры с ->appends('views_count') (предварительно убрав с модели) но это не помогало, валилось с ошибками