2016-05-11 2 views
1

Я попытался установить RESTful API модуль из этого http://budiirawan.com/setup-restful-api-yii2/, и я получаю ошибкуYii2 объект RESTful API не найдена ошибка

Объект не найден!

Я попытался установить mod_rewrite, а также AllowOverride All конфигурации.

Я также связал его, чтобы исправить базу данных, и что в базе данных есть country таблица.

У меня также есть .htaccess файл и вот мой api/config/main.php файл

<?php 
$params = array_merge(
require(__DIR__ . '/../../common/config/params.php'), 
require(__DIR__ . '/../../common/config/params-local.php'), 
require(__DIR__ . '/params.php'), 
require(__DIR__ . '/params-local.php') 
); 

return [ 
'id' => 'app-api', 
'basePath' => dirname(__DIR__), 
'bootstrap' => ['log'], 
'modules' => [ 
    'v1' => [ 
     'basePath' => '@app/modules/v1', 
     'class' => 'api\modules\v1\Module' 
    ] 
], 
'components' => [ 
    'user' => [ 
     'identityClass' => 'common\models\User', 
     'enableAutoLogin' => false, 
    ], 
    'log' => [ 
     'traceLevel' => YII_DEBUG ? 3 : 0, 
     'targets' => [ 
      [ 
       'class' => 'yii\log\FileTarget', 
       'levels' => ['error', 'warning'], 
      ], 
     ], 
    ], 
    'urlManager' => [ 
     'enablePrettyUrl' => true, 
     'enableStrictParsing' => true, 
     'showScriptName' => false, 
     'rules' => [ 
      [ 
       'class' => 'yii\rest\UrlRule', 
       'controller' => 'v1/country', 
       'tokens' => [ 
        '{id}' => '<id:\\w+>' 
       ] 
      ] 
     ], 
    ] 
], 
'params' => $params, 
];  

Вот это модель Country

<?php 

namespace api\modules\v1\models; 

use yii\db\ActiveRecord; 
/** 
* Country Model 
* 
* @author Budi Irawan <[email protected]> 
*/ 
class Country extends ActiveRecord 
{ 
/** 
* @inheritdoc 
*/ 
public static function tableName() 
{ 
    return 'country'; 
} 

/** 
* We use the primary function because we don't use integer auto increment as a primary key. 
* @inheritdoc 
*/ 
public static function primaryKey() 
{ 
    return ['code']; 
} 

/** 
* To let Yii know what fields exist on the table. 
* Define rules for validation 
*/ 
public function rules() 
{ 
    return [ 
     [['code', 'name', 'population'], 'required'] 
    ]; 
} 
} 

Я все еще получаю ту же ошибку при доступе к нему через http://localhost/yii2-api/api/v1/countries.

ответ

1

Согласно учебника вы должны использовать URL:

http://localhost/yii2-api/api/web/v1/countries 

Вместо

http://localhost/yii2-api/api/v1/countries 
Смежные вопросы