0

我正在尝试获取查询结果的第一行和最后一行。我从 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

4

1 回答 1

2

好吧,在 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

会让你看看并对自己说,我最好去阅读文档。因此,您可以不传入任何内容,也可以传入字符串“数组”。

所以现在你能明白为什么了吗

$query->getFirstRow($query))

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

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

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

[$type = 'object'] 表示 $type 默认为字符串 'object',所以返回的类型默认是一个没有传入参数的对象。

如果你希望它返回一个数组,那么你可以指定字符串'array'。那么 $type 参数将被设置为字符串 'array' 并返回一个数组而不是一个对象。

有帮助吗!

于 2021-07-04T13:49:22.630 回答