Php 是否获取今天创建的关系项?

Php 是否获取今天创建的关系项?,php,laravel,Php,Laravel,我试图返回今天创建的成员数量,就像这样 class CollectionResource extends JsonResource { public function toArray($request) { return [ 'id' => $this->id, 'member_count_today' => $this->items()->whereDate('created_at',

我试图返回今天创建的成员数量,就像这样

class CollectionResource extends JsonResource
{
    public function toArray($request)
    {
        return [
            'id' => $this->id,
            'member_count_today' => $this->items()->whereDate('created_at', Carbon::today())->count(),
        ];
    }
}
我收到了错误信息

Integrity constraint violation: 1052 Column 'created_at' in where clause is ambiguous

我认为您的代码中有两个问题:

首先,您应该确定“created_at”列在哪个表中,因为在许多表中都有不止一个具有此名称的列

第二:在比较中,您应该比较日期和日期,而您现在正在比较日期和日期时间

有了这两个注释,您的代码将如下所示:

  'member_count_today' => $this->items()->whereDate('members.created_at', 
  Carbon::today()->toDateString())->count(); 

请将表名“members”替换为您的db表实名

我认为您必须指定您将使用的创建的表名。我猜items和collectionressource都有一个。感谢您的快速回复。我猜members.created_at中的成员是关系的名称吗?集合模型($this->items)中的关系称为items。我用
项尝试了你的代码。在
创建,它告诉我没有这样的列。完整消息是
SQLSTATE[42S22]:未找到列:1054未知列“items”。在“in”where子句“
中创建,代码是“member\u count\u today”=>this->items()->whereDate('items.created\u at',Carbon::today()->toDateString())->count(),'不,这不是关系的名称,它是保存成员信息的db表名的名称,可能是用户。。。