从created_at列获取最新上传的数据

时间:2018-10-25 12:05:06

标签: php laravel-5.5

下面是我在控制器中的功能。

public function getUserTimesheet($userId)
{
    $user = User::find($userId);
    if($user) {

        $userTimesheets = $user->userTimesheets->where('created_at', '>=', Carbon::now()->month());

        return response()->json([
            "status" => true,
            "data" => [
                "user-timesheets" => $userTimesheets
            ]
        ], 200);
    }

    return response()->json([
        "status" => false,
        "message" => "User not found"
    ], 401);
}

我确实为相同的功能创建了模型。

将为同一用户上传多个时间表,但我想返回最新上传的数据。我在各自的数据库中都有crated_at列,并希望通过比较月份进行比较以获取最新的时间表信息。

我在null上调用成员函数where()时出错。 laravel和创建API的新手。谢谢。

1 个答案:

答案 0 :(得分:0)

该错误表明特定用户的userTimesheets关系为空。检查用户是否有时间表,如果有,请检查userTimesheets关系的定义方式。