如何将params转换为数组

时间:2015-12-18 18:31:10

标签: yii2

我收到以下网址

/articles?difficulty=1,2

在框架内部,我希望从中获取一个数组 - [1,2]。框架中是否有任何方法可以将类似的params自动转换为数组?框架能做到吗?我可以这样做explode(',', $params['difficulty']) - 但我想知道这是否可以由框架处理。

我不想这样传递params:

/articles?difficulty[]=1&difficulty[]=2

2 个答案:

答案 0 :(得分:3)

框架Request组件中没有用于转换此类值的帮助程序,可以使用本机PHP explode函数轻松实现。使用:

$array = explode(',', $string);

正如你的建议。

但是explode的包装器存在 - \yii\helpers\StringHelper::explode(),它有修剪和跳过空元素的其他选项,你也可以使用它。但大多数时候使用常规explode就足够了。

答案 1 :(得分:0)

试试这个

使用Request类。

http://www.yiiframework.com/doc-2.0/yii-web-request.html

print_r(Yii::$app->request->get());返回数组中的所有get变量。这就像在直接的PHP中做print_r($_GET);

如果你想要一个特定的$ _GET变量,你可以按如下方式访问它:

Yii::$app->request->get('difficulty');

在你的情况下,它将是:

$success = Yii::$app->request->get('success');
$token = Yii::$app->request->get('token');

之后用逗号爆炸它,所以它会被转换成数组。

$array = explode(',', $success );