我使用非框架开发大约3年了,我听说过PHP框架codeigniter。
我想我错过了使用这个框架的东西,它用于我的移动应用程序的API。
我使用Phil的CI框架RESTful插件从数据库中获取数据时遇到了一些问题。我的浏览器显示错误代码:
{"status":false,"error":"Unknown method."}
使用我的逻辑:
controller: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
}
}
?>
model: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>
错误在哪里?
感谢。
更新 我已经定义了数据库的自动加载。但这个问题仍然存在。有什么帮助吗?感谢
如下面的回答所述,我试图访问url,/ user / get_user /但仍显示相同的结果。在数据库中使用idmt_user有什么问题吗?
答案 0 :(得分:1)
插入控制器:
function __construct() {
parent::__construct();
$this->load->model('user_model');
}
尝试这条路线:
http://localhost/ / index.php的/用户/用户/ ID /
答案 1 :(得分:0)
我认为您访问的网址错误。尝试使用网址@http://localhost/<project>/index.php/user/<method_name>/<user_id>
访问
答案 2 :(得分: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-&gt; get();必须有一个查询参数来获取。示例:id =
如果要传递查询参数,则可以将这些值存储在数组中,如下所示。
if(!empty($this->get()))
{
$params[] = $this->get();
}
我希望这会有所帮助。
答案 3 :(得分:-1)
您应该尝试使用__construct()函数将模型文件包含到控制器文件中,如下所示:
function __construct(){
parent::__construct();
$this->load->model(array('user_model'));
}