当超类是REST_Controller,codeigniter时,不能从URL调用方法

时间:2014-09-28 16:30:51

标签: codeigniter doctrine

我想从浏览器运行网址并获取位于我的项目之外的文件内容,例如:/home/fessy/file.txt

我使用codeigniter和doctrine。

我有一个方法:

class Api extends REST_Controller {

// ....

public function get_file_content_get(){
   var_dump(array('ftp_path' => $this->uri->segments)); 

       $name      = $this->uri->segment(3);
       $rootPath = $this->uri->segment(4);

       $file = file_get_contents("$rootPath/$name.txt", FILE_USE_INCLUDE_PATH);

     // $this->_response('success', array('file_contents' => $file));       
}

所以我生成了我的URL:

site.com/index.php/api/get_file_content_get/118130/%2Fhome%2Ffessy%2Ffile.txt

但是我收到了一个错误:

<xml>
   <status/>
   <error>Unknown method.</error>
</xml>

当我将超级课程从REST_Controller更改为CI_Controller时,我成功调用get_file_content_get方法。

我的活动无法让site.com/index.php/api/get_file_content_get/致电index()

我做错了什么?

感谢,

1 个答案:

答案 0 :(得分:0)

发现问题:

我需要删除_get后缀,因为Doctrine使用此后缀作为GET指示符

相反:

site.com/index.php/api/get_file_content_get/118130/%2Fhome%2Ffessy%2Ffile.txt

应该是:

site.com/index.php/api/get_file_content/118130/%2Fhome%2Ffessy%2Ffile.txt