Php Yii2使用参数时在Url::to()路由中删除结尾斜杠

Php Yii2使用参数时在Url::to()路由中删除结尾斜杠,php,yii2,Php,Yii2,我正在使用Yii2,并且一直在使用该方法,没有任何问题。现在我第一次尝试使用params,它从我的路线中删除了结束斜杠 通常,我会这样做: Url::to('/my/route/', true); // http://www.example.com/my/route/ 但如果我想传递参数,例如: Url::to('['/my/route/', 'id' => 123, 'name' => 'larry']', true); // http://www.example.com/my/

我正在使用
Yii2
,并且一直在使用该方法,没有任何问题。现在我第一次尝试使用params,它从我的路线中删除了结束斜杠

通常,我会这样做:

Url::to('/my/route/', true);
// http://www.example.com/my/route/
但如果我想传递参数,例如:

Url::to('['/my/route/', 'id' => 123, 'name' => 'larry']', true);
// http://www.example.com/my/route?id=123&name=larry
有没有办法阻止它这样做,如果没有,我还有其他选择来得到我想要的吗

我的
UrlManager
规则:

'rules' => [
    [
        'pattern' => 'foo/<name:[0-9a-zA-Z\-]+>.<some_id:\d+>',
        'route' => 'foo/index',
        'suffix' => '/',
    ],
    //.........
],
“规则”=>[
[
“模式”=>“foo/”,
“路由”=>“foo/index”,
'后缀'=>'/',
],
//.........
],
1)您可以通过向包含该路由的相应url规则添加
后缀来实现:

'components' => [
    'urlManager' => [
        'enablePrettyUrl' => true,
        'showScriptName' => false,
        'rules' => [
            [
                'pattern' => 'my/route',
                'route' => 'my/route',
                'suffix' => '/',
            ],
        ],
    ],
],
2)在全球范围内,可以通过
urlManager
属性使用相同的名称
后缀

'components' => [
    'urlManager' => [
        'enablePrettyUrl' => true,
        'showScriptName' => false,
        'suffix' => '/',
    ],
],
3)通过组件设置的替代方法:

Yii::$app->urlManager->suffix = '/';

这一行也适用于特定的路由,只需在调用
Url::to()
之前添加这一行即可

奇怪的是,我已经在
UrlManager
中设置了这个带有后缀
/
的路由,所以不知道为什么它不起作用。但是,执行
Yii::$app->urlManager->suffix='/'在调用它之前生效。:)显示url规则,以便我们看到它有什么问题。我想你只是说它错了。试试这个:
Url::to(['foo/index',name'=>'name',some_id'=>1',other_param'=>1],true)
。所以在调用
Url::to()
时基本上去掉了结尾的斜杠。斜杠将在这里处理的初始阶段被删除。你在别的地方出错了。那么它现在即使在url规则设置下也能工作了?