2016-08-30 56 views
1

我已經在phpMyAdmin創建的用戶表中的Prestashop數據庫,該表的模式是:的Prestashop:無法通過Web服務訪問新增資源

CREATE TABLE users (
id int NOT NULL AUTO_INCREMENT, 
Token int NOT NULL, 
PRIMARY KEY (id), 
UNIQUE KEY (Token) 
); 

我想在我的web資源列表中添加此表就像其他資源一樣,並從另一個應用程序訪問該資源。

要做到這一點,到目前爲止以下任務我做:

  1. 我已經創建/prestashop/mymodule/override/classes/webservice/ WebserviceRequest.php

    class WebserviceRequest extends WebserviceRequestCore { 
        public static function getResources(){ 
         $resources = parent::getResources(); 
         $resources['users'] = array('description' => 'Device registration', 'class' => 'Users'); 
         ksort($resources); 
         return $resources; 
        } 
    } 
    
  2. /prestashop/mymodule/override/classes/Users.php

    class Users extends ObjectModel { 
        public static $definition = array(
         'table' => 'users', 
         'primary' => 'id', 
         'fields' => array(
          'Token' => array('type' => self::TYPE_INT) 
         ) 
        ); 
        protected $webserviceParameters = array(); 
    } 
    

由於結果我在webservice資源列表中找到了表。但是當我點擊URL:example.com/api/users時,不會返回XML數據。

我對這個問題搜索了很多,但沒有找到任何有效的解決方案:如何在web服務資源中添加新的數據庫表users,並使用example.com/api/users URL訪問資源。

+0

你確定嗎?剛剛測試過,它的工作。你想要哪些XML數據?你有多主動激活' – sarcom

+0

看到你自己[這裏](http://ps1615.tanzows.it/api/)。 API key:ZFWQ5LFUIAEKHHUPRC5QIZPRSRW34B7N :) – sarcom

+0

是的,我做了上述步驟。不,我沒有激活多主題。我錯過了什麼嗎? –

回答

0

所有正確的,但只有小的修正:

表必須在安裝過程中選用的前綴(默認爲ps_):

CREATE TABLE ps_users (
id int NOT NULL AUTO_INCREMENT, 
Token int NOT NULL, 
PRIMARY KEY (id), 
UNIQUE KEY (Token) 
); 

1點是好的;)

2點,不要忘記將表格字段添加爲public var,否則XML將不會顯示存儲在db中的信息:

class UsersAPI extends ObjectModel { 
    public $Token; 

    public static $definition = array(
     'table' => 'users', 
     'primary' => 'id', 
     'fields' => array(
      'Token' => array('type' => self::TYPE_INT) 
     ) 
    ); 
    protected $webserviceParameters = array(); 
} 

編輯: 如果你有一個覆蓋不要忘記刪除prestashop/cache/class_index.php

+0

我的朋友,我發送的文件,但它是你的發佈代碼相同:)。你是否已經在'prestashop/cache /'中刪除了'class_index.php'文件?你有沒有檢查文件「UsersAPI.php」是否在文件夾中? – sarcom

+0

嗨sarcom,xlinks是如何形成的?我獲取http://example1.com/api/tokenss/1來獲取令牌資源。那應該是http://example1.com/api/tokens/1 –