Php 如何将Yii2自定义URL规则中的请求方法从GET更改为POST和其他?

Php 如何将Yii2自定义URL规则中的请求方法从GET更改为POST和其他?,php,yii2,Php,Yii2,我正在尝试使用默认控制器在Yii2中的RESTfull web服务中工作。但我面临的问题是,我无法发送带有参数的POST请求。 下面是我的代码: web.php中的Url管理器规则 'urlManager' => [ 'class' => 'yii\web\UrlManager', // Disable index.php 'showScriptName' => false, // Disable r= route

我正在尝试使用默认控制器在
Yii2
中的RESTfull web服务中工作。但我面临的问题是,我无法发送带有参数的POST请求。 下面是我的代码:

web.php中的Url管理器规则

'urlManager' => [
        'class' => 'yii\web\UrlManager',
        // Disable index.php
        'showScriptName' => false,
        // Disable r= routes
        'enablePrettyUrl' => true,
        'rules' => array(
            ['pattern' => 'api/v1/auth/payment/<id:\d+>', 'route' => 'api/v1/auth/payment'],
            '<controller:\w+>/<id:\d+>' => '<controller>/view',
            '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
            '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
        ),
    ],
但是当我将
GET
请求发送到
http://{url}//api/v1/auth/payment/5
时,我得到的响应是
5
。但我希望在发送
POST
或任何其他方法时得到该结果

那么我如何才能做到这一点呢?

使用

'POST s'=>'/create',

看更多

来自文档的更多示例

[
    'dashboard' => 'site/index',

    'POST <controller:\w+>s' => '<controller>/create',
    '<controller:\w+>s' => '<controller>/index',

    'PUT <controller:\w+>/<id:\d+>'    => '<controller>/update',
    'DELETE <controller:\w+>/<id:\d+>' => '<controller>/delete',
    '<controller:\w+>/<id:\d+>'        => '<controller>/view',
];
[
“仪表板”=>“站点/索引”,
'POST s'=>'/create',
's'=>'/index',
“PUT/”=>“/update”,
'删除/'=>'/删除',
“/”=>“/视图”,
];

让我告诉你我是如何解决的

我为基本应用程序设置构建了一个简单的应用程序结构

------应用程序

------模块

----------原料药

-------------模块

----------------v1

-------------------控制器

-------------------模型

-------------------等

您只需先完成应用程序设置

然后在每个控制器中定义谓词筛选,或者像我所做的那样,通过在公共类中定义来对其进行排序

然后使用您在urlManager中定义的相同规则,您将能够获得请求查询参数

希望这有帮助

[
    'dashboard' => 'site/index',

    'POST <controller:\w+>s' => '<controller>/create',
    '<controller:\w+>s' => '<controller>/index',

    'PUT <controller:\w+>/<id:\d+>'    => '<controller>/update',
    'DELETE <controller:\w+>/<id:\d+>' => '<controller>/delete',
    '<controller:\w+>/<id:\d+>'        => '<controller>/view',
];