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') (предварительно убрав с модели) но это не помогало, валилось с ошибками


Ответы (0 шт):