2015-05-28 15:00:24 5304次浏览 3条回答 0 悬赏 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,
    ],
    
  • 回答于 2015-05-28 15:18 举报

    你的目录结构加了一个v1 目录呀

    1 条回复
    回复于 2015-05-28 15:28 回复

    你好,我不太明白,我想知道明明是class CountryController 为什么要用countries去访问
    那如果我新建一个class ArticleController 要用什么去访问呢?

  • 回答于 2015-06-09 21:55 举报

    楼主 你好 不知道你用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 条回复
    回复于 2015-08-10 22:56 回复

    可以试试upupw

    回复于 2016-02-25 16:42 回复

    我在github上看到过你 在nginx上我也和你出现了同样的问题,请问你解决了没有?

您需要登录后才可以回答。登录 | 立即注册
selenium888
试用期

selenium888

注册时间:2015-05-28
最后登录:2017-03-15
在线时长:3小时59分
  • 粉丝1
  • 金钱5
  • 威望0
  • 积分35

热门问题