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',
];