Codeigniter 4 - 如何获取结果的第一行和最后一行

Codeigniter 4 - how to get the first row and the last row of a result

我正在尝试获取查询结果的第一行和最后一行。我从 Ci4 的文档中看到,有两种方法可以提供帮助,namley,getFirstRow([$type = 'object'])getLastRow([$type = 'object']),但我在使用它们时遇到困难。到目前为止,这是我的方法:

function getLoginFailCount($login_fail_ip, $max_login_attempts = 3, $within_seconds = 320){
    $builder = $this->builder('login_fail');
    $builder->where('login_fail_ip', $login_fail_ip);
    $builder->orderBy('login_fail_created_at','DESC');
    $query = $builder->get(3);
    print_r($query->getFirstRow($query));
}

我在 getFirstRow 中收到如下错误;

Argument 1 passed to CodeIgniter\Database\BaseResult::getFirstRow() must be 
of the type string, object given

如何让 getFirstRow() 工作?这个文档定义不是说我需要给它传递一个 object 吗?为什么错误说我的类型是 string

在 getFirstRow() 的文档中,它指出您可以使用

$row = $query->getFirstRow() // which will give you an object

$row = $query->getFirstRow(‘array’) // which will give you an Array

所以您的错误消息指出...

Argument 1 passed to CodeIgniter\Database\BaseResult::getFirstRow()
must be  of the type string, object given

会让你看着自己说,我最好去阅读文档。因此,您可以不传递任何内容,也可以传递 String 'array'.

现在你明白为什么了

$query->getFirstRow($query))

没有任何意义!为什么要传入 $query 对象作为参数。

您可能误读了文档。我看到你说 getFirstRow([$type = 'object'])

你可能对此有点困惑...

[$type = 'object'] 表示 $type 默认为字符串 'object' 所以 returned 类型默认是一个没有传递参数的对象英寸

如果你想让它return一个数组,那么你会指定字符串'array'。那么 $type 参数将被设置为字符串 'array' 和 return 数组而不是对象。

有帮助吗!