0

最近、幅のCodeigniter Restfulサーバーを開始しました。次のスクリプトを使用します: https://github.com/philsturgeon/codeigniter-restserver

モデルのプロパティを取得しようとすると、Rest サーバーは NULL を返します。通常の CI コントローラーでは、この関数は機能します。コードは次のとおりです。

require(APPPATH.'/libraries/REST_Controller.php'); 
class Api extends REST_Controller
{
    function user_post()  
    {  
        $username = $this->post('username');
        $password = $this->post('password');
        $company_code = $this->post('company_code');
        $key = $this->post('key');
        $this->CI =& get_instance();

        // Load user model
        $this->load->model('User_model');
        $this->load->model('Api_model');

        // Ip adres remote server
        $server_ip  = $_SERVER['REMOTE_ADDR'];

        // Ophalen data
        $user = $this->User_model->getApiLogin($username,$password);

最後の行にエラーが表示されます: $user = $this->User_model->getApiLogin($username,$password);

Api は Curl を介して呼び出されます。

             $key = 'Test';
         $company_code = 'econome';  
         $username = 'jellepals';  
         $password = 'test';  

         $curl_handle = curl_init();  
         curl_setopt($curl_handle, CURLOPT_URL, 'http://jelle.testapiserver.nl/api/user/format/json');
         //curl_setopt($curl_handle, CURLOPT_VERBOSE, true);
         //curl_setopt($curl_handle, CURLOPT_FOLLOWLOCATION, true);             
         curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);  
         curl_setopt($curl_handle, CURLOPT_POST, 1);  
         curl_setopt($curl_handle, CURLOPT_POSTFIELDS, array(  
             'key' => $key,  
             'username' => $username,
             'password' => $password));  
         $buffer = curl_exec($curl_handle);  
         curl_close($curl_handle);  
         $result = json_decode($buffer);  
         var_dump($result);

Restserver でモデル関数を呼び出す方法を知っている人はいますか? ありがとう!

4

3 に答える 3

0

問題は私のデータベース接続にあると思います。誰かが、db クラスと Db_handler.php というモデルの間に追加のレイヤーを構築します。APIから呼び出すと、このレイヤーは明らかに機能しません。このレイヤーを使用すると、複数のデータベースを使用できます。これを追加するとき:

   var $db;

    public function __construct() {
        parent::__construct();
        $this->db = $this->load->database($this->config->item('default', 'database'), TRUE);
    }

私のモデルでは、接続は正常に機能します。

コメントありがとうございます MDeSilva.

于 2013-03-01T13:08:05.480 に答える
0

単にこのように

$this->load->model('category_model');
$categories = $this->category_model->get_categories_api($language_code);

このようなモデルを読み込んでみてください (モデルの最初の文字は単純です)

    $this->load->model('user_model');
    $this->load->model('api_model');
于 2013-03-01T12:20:44.180 に答える