yii2 restful 测试时,地址问题? [ 2.0 版本 ]
为什么地址必须是v1/countries才能成功访问,
但是控制器明明是
<?php
namespace api\modules\v1\controllers;
use yii\rest\ActiveController;
/**
* Country Controller API
*
* @author Budi Irawan <deerawan@gmail.com>
*/
class CountryController extends ActiveController
{
public $modelClass = 'api\modules\v1\models\Country';
}
也没有其他地方配置这个countries
最佳答案
-
chocoboxxf 发布于 2015-05-28 15:38 举报
配置url的时候把pluralize设为false,就不会自动把url转换成复数形式了,默认值是true,比如:
[ 'class' => 'yii\rest\UrlRule', 'controller' => 'v1/countries', 'tokens' => [ '{id}' => '<id:\\d[\\d,]*>', ], 'patterns' => [ 'PUT,PATCH {id}' => 'update', 'DELETE {id}' => 'delete', 'GET,HEAD {id}' => 'view', 'POST' => 'create', 'GET,HEAD' => 'index', '{id}' => 'options', '' => 'options', ], 'pluralize' => false, ],
其他 2 个回答
-
huaixiaoya 回答于 2015-05-28 15:18 举报
你的目录结构加了一个v1 目录呀
共 1 条回复selenium888 回复于 2015-05-28 15:28 回复你好,我不太明白,我想知道明明是class CountryController 为什么要用countries去访问
那如果我新建一个class ArticleController 要用什么去访问呢? -
楼主 你好 不知道你用nginx怎么配置restful api的虚拟域名访问的? 我配置如下,但是一直报404错误,困扰我很久了
server {charset utf-8; client_max_body_size 128M; set $fcgi_server 127.0.0.1:9000; listen 80; ## listen for ipv4 server_name api.denghp.com; root /home/denghp/webroot/yii2-advanced-api/api/web; index index.php; access_log /usr/local/nginx/logs/yii2_demo_api_access.log main; error_log /usr/local/nginx/logs/yii2_demo_api_error.log; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { try_files $uri =404; include fastcgi_params; fastcgi_pass $fcgi_server; } location ~ /\.(ht|svn|git) { deny all; }
}
访问地址,都试过
http://api.denghp.com/v1/countries
http://api.denghp.com/v1/country
共 2 条回复
selenium888
注册时间:2015-05-28
最后登录:2017-03-15
在线时长:3小时59分
最后登录:2017-03-15
在线时长:3小时59分
- 粉丝1
- 金钱5
- 威望0
- 积分35