我对Chris Kacerguis维护的流行REST API codeigniter有疑问。我创建了一个如下所示的Datadiri控制器:
<?php
require (APPPATH.'/libraries/REST_Controller.php');
class Datadiri extends REST_Controller{
function __construct($config = 'rest'){
parent::__construct($config);
}
//tampilkan data
function index(){
$buku = $this->db->get('perpustakaan');
$this->response($buku, 200);
}
}
这是Rest_controller.php https://github.com/chriskacerguis/codeigniter-restserver/blob/master/application/libraries/REST_Controller.php
但仍然相同,错误类&#39; REST_Controller&#39;未找到。我怎么能解决这个问题?
致命错误:Class&#39; REST_Controller&#39;找不到 C:\ xampp \ htdocs \ CodeIgniter \ application \ controllers \ datadiri.php on 第4行遇到PHP错误
严重性:错误
消息:Class&#39; REST_Controller&#39;找不到
文件名:controllers / datadiri.php
行号:4
回溯:
答案 0 :(得分:5)
最后问题解决了。
我编辑application / config / config.php
来自:$config['subclass_prefix'] = 'MY_';
致:$config['subclass_prefix'] = 'REST_';
和Datadiri.php这样:
<?php
use Restserver\Libraries\REST_Controller;
class Datadiri extends REST_Controller{
function __construct(){
parent:: __construct();
}
function index_get(){
$buku = $this->db->get('perpustakaan')->result();
$this->response($buku, 200);
}
}
答案 1 :(得分:4)
在您的控制器api php中确保有此
require APPPATH . '/libraries/REST_Controller.php';
use Restserver\Libraries\REST_Controller;
然后转到Rest_Controller并确保您拥有
use CI_Controller;
require APPPATH . 'libraries/Format.php';
希望对您有帮助
答案 2 :(得分:3)
我遇到了同样的问题,并在控制器中的require()语句解决了问题后添加了命名空间。
之后:
require (APPPATH.'/libraries/REST_Controller.php');
添加:
// use namespace
use Restserver\Libraries\REST_Controller;
答案 3 :(得分:1)
不使用Composer。
需要APPPATH。 'libraries / REST_Controller.php'; 需要APPPATH。 'libraries / Format.php';
之后,它看起来像:
... 需要APPPATH。 'libraries / REST_Controller.php'; 需要APPPATH。 'libraries / Format.php';
class示例扩展了REST_Controller {
function __construct()
{
...
用于测试: -在浏览器中打开项目 -在欢迎屏幕上,单击REST Server测试 -在下一个屏幕上,单击“用户”(-默认为JSON)
答案 4 :(得分:0)
让我们尝试如下......
<?php
require('application/libraries/REST_Controller.php');
class Datadiri extends REST_Controller{
function __construct($config = 'rest'){
parent::__construct($config);
}
//tampilkan data
function index(){
$buku = $this->db->get('perpustakaan');
$this->response($buku, 200);
}
}
OR
将REST_Controller.php
放入application/core
,然后只需
<?php
class Datadiri extends REST_Controller{
function __construct($config = 'rest'){
parent::__construct($config);
}
//tampilkan data
function index(){
$buku = $this->db->get('perpustakaan');
$this->response($buku, 200);
}
}
不需要包含放在核心文件夹中的文件。
答案 5 :(得分:0)
这个库将进入Composer,因此您需要运行
composer require chriskacerguis/codeigniter-restserver
并在配置文件
中将$config['COMPOSER_AUTOLOAD']
更改为true
答案 6 :(得分:0)
这是一个双向参考问题,您可以通过以下两个步骤从根本上解决它:
1-在您的api类的开头添加以下代码:
use Restserver\Libraries\REST_Controller;
require APPPATH . 'libraries/REST_Controller.php';
require APPPATH . 'libraries/Format.php';
class Example extends REST_Controller {..
2-在文件中:application / libraries / REST_Controller.php 添加:
use CI_Controller;
之前
abstract class REST_Controller extends CI_Controller {
干杯!
答案 7 :(得分:0)
在我自己的Codeigniter项目中实现此问题时遇到了同样的问题。
我只是将 Format.php 和 REST_Controller.php 文件复制到 Libraries 文件夹中。
将这些文件放入“库”文件夹后,您必须更改
命名空间Restserver \ Libraries;
到
命名空间YOUR_PROJECT_NAME \ Libraries;
在两个文件(Format.php和REST_controller.php)中。
并在扩展 REST_Controller 的控制器中,将这三行代码直接放在php标签后
使用YOUR_PROJECT_NAME \ Libraries \ REST_Controller;
需要APPPATH。 'libraries / REST_Controller.php';
需要APPPATH。 'libraries / Format.php';
希望它将对某人有所帮助。谢谢
答案 8 :(得分:0)
最好的方法是使用composer进行安装,然后将composer自动加载文件加载到codeigniter中,并在扩展了use Restserver\Libraries\REST_Controller;
的控制器中使用命名空间REST_Controller
。
答案 9 :(得分:0)
添加此...
require(APPPATH.'/libraries/REST_Controller.php');
use Restserver\Libraries\REST_Controller;
use CI_Controller;
require APPPATH . 'libraries/Format.php';
希望这会起作用:)