0

我已经使用非框架开发了大约 3 年,并且听说过 PHP 框架 codeigniter。

我想我错过了使用这个框架的东西,该框架用于我的移动应用程序的 API。

我在使用 Phil 的 CI 框架 RESTful 插件从数据库中获取数据时遇到了一些问题。我的浏览器显示错误代码:

 {"status":false,"error":"Unknown method."}

使用我的逻辑如下:

控制器:user.php

  <?php

  require(APPPATH.'libraries/REST_Controller.php');

  class User extends REST_Controller{

  public function user_get()  
  {  
    //IF USER NOT EXIST
    if(!$this->get('id'))
    {
        $this->response(NULL, 400);
    }

    //CHECK TO MODEL FUNCTION
    $user = $this->user_model->get_user($this->get('id'));

    //IF USER EXIST
    if($user)
    {
        $this->response($user, 200); // 200 being the HTTP response code
    }
}  

   public function user_put()  
   {  
    // create a new user and respond with a status/errors  
   }  

   public function user_post()  
   {  
    // update an existing user and respond with a status/errors  
   }  

   public function user_delete()  
   {  
    // delete a user and respond with a status/errors  
   }  
 }
?>

型号:user_model.php

 <?php

    class User_model extends CI_Model{

    function __construct() {
        parent::__construct();        
    }

    function get_user($id){
        $query = $this->db->get('mt_user', array('idmt_user'=>$id));
        return $query->row_array();
    }

   }
   ?>

我正在访问具有以下行的数据库:

idmt_user,username,password, emails, createdate

使用 Mozilla 访问:

@http://localhost/<project>/index.php/user/<userid>

错误在哪里?

谢谢。

更新, 我已经定义了数据库的自动加载。但是这个问题仍然存在。有什么帮助吗?谢谢

如下面的回答所述,我尝试访问网址 /user/get_user/ 但仍然显示相同的结果。在数据库中使用 idmt_user 有什么问题吗?

4

4 回答 4

1

插入控制器:

function __construct() {
        parent::__construct();
        $this->load->model('user_model');
}

并尝试这条路线:

http://localhost/ /index.php/user/user/id/

于 2016-02-13T19:41:41.673 回答
0

我认为您访问的 url 是错误的.. 尝试使用 url 访问@http://localhost/<project>/index.php/user/<method_name>/<user_id>

于 2013-07-27T11:02:21.810 回答
0

另一种方法是使用 URI 类。

而不是编写以下内容:

//IF USER NOT EXIST
if(!$this->get('id'))
{
    $this->response(NULL, 400);
}

变成:

$userid = $this->uri->segment(3);

Would be 3 based off the url being http://localhost/<project>/user/<method_name>/<user_id>

URI 类参考:http: //www.codeigniter.com/user_guide/libraries/uri.html

为了使用 $this->get(); 必须有一个查询参数才能获取。示例:id=

如果您传递查询参数,则可以将这些值存储在数组中,如下所示。

if(!empty($this->get()))
{
    $params[] = $this->get();
}

我希望这有帮助。

于 2016-01-17T08:59:46.940 回答
-1

您应该尝试使用 __construct() 函数将模型文件包含到控制器文件中,如下所示:

function __construct(){
        parent::__construct();
        $this->load->model(array('user_model'));
}
于 2015-01-25T08:02:45.730 回答