【问题标题】:API calling using CodeIgniter famework使用 CodeIgniter 框架的 API 调用
【发布时间】:2019-02-20 07:02:02
【问题描述】:

在邮递员中调用其余 API 时出现错误。请解决错误。 给定的错误如下所示。

遇到未捕获的异常

类型:错误

消息:在布尔值上调用成员函数 row()

文件名: C:\xampp\htdocs\CodeIgniterRestApi\application\libraries\REST_Controller.php

行号:935

回溯:

文件: C:\xampp\htdocs\CodeIgniterRestApi\application\libraries\REST_Controller.php 行:469 功能:_detect_api_key 文件: C:\xampp\htdocs\CodeIgniterRestApi\index.php 行:315 功能: 需要一次

REST_Controller.php

if ( ! ($row = $this->rest->db->where($this->config->item('rest_key_column'), $key)->get($this->config->item('rest_keys_table'))->row()))
{
    $this->_allow = $this->_detect_api_key();
}

【问题讨论】:

  • 只需回显您的 last_query() 并查看问题。
  • 你想做什么?
  • 只是猜测,$row 给出 true 或 false 作为输出,因为 !($row...).. 你需要做其他事情

标签: php rest api codeigniter


【解决方案1】:

如果您没有正确配置 Rest Server,则会出现此错误。

在您的情况下 - 您在您的 rest.php 配置文件中设置(您会在 /application/config/rest.php 下找到它)密钥 $config['rest_enable_keys']true,但您没有创建必要的表。

如果你真的想为你的休息服务使用密钥,你必须创建这个/那些表。 这在相关的配置文件中有很好的记录。

您可以在您的文件或 github 上找到此信息 - 看看 here

创建代码

CREATE TABLE `keys` (
   `id` INT(11) NOT NULL AUTO_INCREMENT,
   `user_id` INT(11) NOT NULL,
   `key` VARCHAR(40) NOT NULL,
   `level` INT(2) NOT NULL,
   `ignore_limits` TINYINT(1) NOT NULL DEFAULT '0',
   `is_private_key` TINYINT(1)  NOT NULL DEFAULT '0',
   `ip_addresses` TEXT NULL DEFAULT NULL,
   `date_created` INT(11) NOT NULL,
   PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-02
    • 2023-03-15
    • 1970-01-01
    • 2014-11-06
    • 2011-05-19
    • 1970-01-01
    • 2021-11-03
    • 2013-04-03
    相关资源
    最近更新 更多