【问题标题】:Show number of reservations user have made in admin's user list page显示用户在管理员的用户列表页面中进行的预订数量
【发布时间】:2019-01-14 12:01:02
【问题描述】:

我想统计在管理面板中使用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();
  }

用户数据表

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

... 但是,它会抛出一个错误:

传递给 App\DataTables\Admin\UserDataTable::App\DataTables\Admin\{closure}() 的参数 1 必须是 App\Models\Reservation 的实例,给定 App\Models\User 的实例,

我尝试按照中提到的步骤进行操作 Counting total posts by a user in the blade view ...但它没有帮助..

我错过了什么?

【问题讨论】:

    标签: php laravel eloquent laravel-datatables


    【解决方案1】:

    您正在创建用户表?所以,我假设你的回调函数期望得到一个User 模型。 User 模型有一个 users_count 属性,其中包含预订数量。

    ->editColumn('user_reservation', function(User $user) {
        return $user->users_count;
    });
    

    【讨论】:

    • 我按照你说的做了..但是抛出错误异常消息:\n\nSQLSTATE[42S22]: 找不到列:1054 'where 子句'中的未知列'reservations.user_id'( SQL: select count(*) as aggregate from reservations where reservations.user_id = 54 and reservations.user_id is not null)"}
    • 我刚刚解决了..在 User 模型中,我只是添加了外键 customer_id 即 public function reservations() { return $this->hasMany(Reservation: :class, 'customer_id'); } 因为我的外国 id 不是 user_id...谢谢你 @Jerodev 的时间-:)
    猜你喜欢
    • 2018-05-16
    • 2020-05-18
    • 2020-12-04
    • 1970-01-01
    • 2017-07-14
    • 1970-01-01
    • 2018-08-14
    • 1970-01-01
    • 2021-07-25
    相关资源
    最近更新 更多