gpt4 book ai didi

php - yii2 POST参数映射

转载 作者:可可西里 更新时间:2023-11-01 12:58:54 25 4
gpt4 key购买 nike

我有一些发送模拟数据的 js 脚本:

    $.ajax({
type: "POST",
url: '/manage/add-shops/',
data: {'id':id, 'shops': shops}

'shops' 是包含约 1000 个元素的数组,因此我应该通过 POST 发送它。我有一个带有方法的 yii2 Controller :

class ManageController extends Controller {
public function actionAddShops($id, $shops=array()) {
....
}

路由正常,但出现此错误:

"Missing required parameters: id"

看起来 POST 参数没有映射到方法参数。谢谢。

最佳答案

你是对的,出于某种原因,Yii2 只自动绑定(bind) GET 变量,但不幸的是不是 POST。

但是,您可以轻松地进行魔术绑定(bind);您所要做的就是重写 Controller 的 runAction()。如果您不想为每个 Controller 手动执行此操作,只需创建一个基本 Controller 并在需要时从中扩展。检查以下代码段:

public function runAction($id, $params = [])
{
// Extract the params from the request and bind them to params
$params = \yii\helpers\BaseArrayHelper::merge(Yii::$app->getRequest()->getBodyParams(), $params);
return parent::runAction($id, $params);
}

然后您将能够像在 Yii1 中一样正常访问您的 Controller 操作 $id$shops

希望这对您有所帮助。

关于php - yii2 POST参数映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28209465/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com