Yii2 url管理器正确生成URL但无法解析命名参数

时间:2016-01-20 14:02:06

标签: php yii2 url-routing yii-url-manager

我有很多像这样的规则:

'/manager/stale-zwroty/zmien/<idDomain:\d+>' => '/owner/chat-texts/update',

正确生成了网址,但当我尝试进入网页/manager/stale-zwroty/zmien/1时,无法读取idDomain参数值。

我注意到与上述规则对应的UrlRule实例具有空属性$this->placeholders

我从作曲家安装了最新的Yii版本。以前它工作正常。

以下是UrlRule实例结果的var_dump

    object(yii\web\UrlRule)#59 (15) {
  ["name"]=>
  string(42) "/manager/stale-zwroty/zmien/<idDomain:\d+>"
  ["pattern"]=>
  string(50) "#^manager/stale-zwroty/zmien/(?P<ac4b8b691>\d+)$#u"
  ["host"]=>
  NULL
  ["route"]=>
  string(23) "owner/chat-texts/update"
  ["defaults"]=>
  array(0) {
  }
  ["suffix"]=>
  NULL
  ["verb"]=>
  NULL
  ["mode"]=>
  NULL
  ["encodeParams"]=>
  bool(true)
  ["placeholders":protected]=>
  array(0) {
  }
  ["_template":"yii\web\UrlRule":private]=>
  string(39) "/manager/stale-zwroty/zmien/<idDomain>/"
  ["_routeRule":"yii\web\UrlRule":private]=>
  NULL
  ["_paramRules":"yii\web\UrlRule":private]=>
  array(1) {
    ["idDomain"]=>
    string(8) "#^\d+$#u"
  }
  ["_routeParams":"yii\web\UrlRule":private]=>
  array(0) {
  }
  ["_placeholders":"yii\web\UrlRule":private]=>
  array(1) {
    ["ac4b8b691"]=>
    string(8) "idDomain"
  }
}

1 个答案:

答案 0 :(得分:0)

我找到了答案。

Yii2 UrlManager从缓存中获取url-rules。我删除了runtime/cache个内容,现在正在使用。