在Yii2中创建URL和参数

时间:2016-08-07 04:45:48

标签: yii2

我尝试使用Url :: to()方法创建具有多个参数的Url但是它不起作用我也尝试了UrlManager-> creatUrl()方法但没有运气,我有漂亮的Url启用,如果我只使用一个查询参数它工作正常,但当我尝试添加更多我得到错误,下面是我的代码。

def f():
    w.s = "one"
w.s  = "one" # called before there is such an object
f() # called before w exists, it will error out    

class SomeClass(object):
    def __init__(self):
        self.s = "two"

w = SomeClass()
f() # since w exists it will run

在url输出上面的两个案例中总是如下所示:

$linkUrl = \Yii::$app->UrlManager->createUrl(['sell/updatecategory', ['draftId'=> $model->draftId,'catid' =>$model->category_id]]);
<?= Html::button('Change category or product',['value'=>$linkUrl, 'id' => 'StartOver']) ?>
another try is:
$linkUrl = Url::to(['sell/updatecategory', ['draftId'=> $model->draftId,'catid' =>$model->category_id]]);

并且服务器抛出错误无法解析url,我想要的是这样的:

GET http://http://192.168.199.128/trobay/products/sell/updatecategory?1%5BdraftId%5D=20&1%5Bcatid%5D=50

系统添加了一些字符,我猜这是问题的原因,但我真的不知道如何删除它。我很热,任何人都可以帮助这个感谢

1 个答案:

答案 0 :(得分:0)

不要将嵌套数组用于参数。 结构应如下所示:

[0 => route, param1 => value1, param2 => value2, ...]

所以在你的情况下

$linkUrl = Url::to([
    'sell/updatecategory', 
    'draftId' => $model->draftId, 
    'catid' => $model->category_id
]);