Показывать количество бронирований, сделанных пользователем на странице со списком администраторов.

Я хочу подсчитать количество пользователей, сделавших бронирование в панели администратора, используя Laravel Datatables.

Модель бронирования

public function customer()
  {
    return $this->belongsTo(User::class, 'customer_id');
  }

Модель пользователя

public function reservations()
  {
    return $this->hasMany(Reservation::class);
  }

  public function getUsersCountAttribute()
  {
    return $this->reservations()->count();
  }

Userdatatable

->editColumn('user_reservation', function(Reservation $reservation){
     return $reservation->customer->users_count;
  });

... Однако, - он выдает ошибку, говоря:

Аргумент 1, передаваемый в App\DataTables\Admin\UserDataTable::App\DataTables\Admin\{closure}(), должен быть экземпляром App\Models\ Reservation, должен быть предоставлен экземпляр App\Models\ User,

Я попытался выполнить шаги, указанные в разделе Подсчет общего количества сообщений пользователем в режиме просмотра лезвия... но это не помогло...

Что мне не хватает?

1 ответ

Решение

Вы создаете таблицу пользователей? Итак, я полагаю, что ваша функция обратного вызова ожидает получить User модель. И User модель имеет users_count атрибут, который содержит количество бронирований.

->editColumn('user_reservation', function(User $user) {
    return $user->users_count;
});
Другие вопросы по тегам