• yii restful和一般路由共存


    <?php
    
    namespace appcontrollers;
    
    use Yii;
    use yii
    estActiveController;
    
    /**
     * 
     */
    class TestController extends ActiveController
    {
    
        public $modelClass = 'appmodelsTest';
    
        public function behaviors()
        {
            $behaviors = parent::behaviors();
            $behaviors['contentNegotiator']['formats'] = ['application/json' => yiiwebResponse::FORMAT_JSON];
            return $behaviors;
        }
        
        public function actionHi($id)
        {
            return ['s', 2];
        }
    
    }

    上述代码中行为定义了默认返回json。

    'urlManager' => [
                'enablePrettyUrl' => true,
                'enableStrictParsing' => true,
                'showScriptName' => false,
                'rules' => [
                    [
                        'class' => 'yii
    estUrlRule', 
                        'pluralize' => false,  //关闭复数显示,如user访问变成了users
                        'controller' => 'test'
                    ],
                ],
            ],

    在没有开启上面的配置前,/test/1,可以通过index.php?r=test/view&id=1 访问,也就是一般的路由规则访问。

    没有开启enablePrettyUrl = true ,则通过/test/view?id=1访问。

    如果全部按照上面示例的配置,且配置controller,则可以直接/test/1访问,因为这个yii estUrlRule内部已经把路由做了处理。

    如:

    [

    'PUT,PATCH users/<id>' => 'user/update',

    'DELETE users/<id>' => 'user/delete',

    'GET,HEAD users/<id>' => 'user/view',

    'POST users' => 'user/create',

    'GET,HEAD users' => 'user/index',

    'users/<id>' => 'user/options',

    'users' =>'user/options',

    ]

    在没有开启restful相关的配置前,按照一般的路由规则访问。

  • 相关阅读:
    程序修炼之道——从小工到专家(3)
    组合
    子类重用父类的功能
    对象之间的交互
    属性查找与绑定方法
    类与对象的定义与使用
    hashlib模块subprocess模块
    configerparser模块
    shelve模块 xml模块
    sys模块 json pickle模块
  • 原文地址:https://www.cnblogs.com/luckcs/p/7159732.html
Copyright © 2020-2023  润新知