gpt4 book ai didi

arrays - Yii2:如何将数组作为参数传递给 Controller ​​操作?

转载 作者:行者123 更新时间:2023-12-02 09:24:27 25 4
gpt4 key购买 nike

使用 URL http://localhost/site/myAction?a[]=value1&a[]=value2 我尝试将数组传递给操作。 Controller 操作如下所示:

class SiteController extends Controller {
public function actionMyAction($a) {
...
}
}

我收到错误:

exception 'yii\base\InvalidParamException' with message 'Variable declaration not valid.'

实际上,我希望能够将字符串或字符串数​​组传递给操作。单个字符串工作正常,但数组不行。怎么解决呢?

最佳答案

传递具有相同声明参数的字符串数组似乎是不可能的。要传递数组,必须以这种方式声明参数:

class SiteController extends Controller {
public function actionMyAction(array $a) { // parameter must be an array now
...
}
}

这样,URL 中的单个参数需要包装到 URL 内的数组中。

另一种方法是根本不声明任何参数并使用 Yii::$app->request->get() 获取值。 :

class SiteController extends Controller {
public function actionMyAction() { // no parameter anymore
$a = Yii::$app->request->get('a'); // $a can be an array or a string!
// or null if no argument was passed.
}
}

现在这些 URL 是有效的:

http://localhost/site/myAction?a[]=value1&a[]=value2
http://localhost/site/myAction?a[]=value1
http://localhost/site/myAction?a=value1
http://localhost/site/myAction

关于arrays - Yii2:如何将数组作为参数传递给 Controller ​​操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38970974/

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