Yii2错误:yii\base\UnknownMethodException:调用未知方法:yii\web\UrlManager :: addRules() [英] Yii2 Error: yii\base\UnknownMethodException: Calling unknown method: yii\web\UrlManager::addRules()

查看:3076
本文介绍了Yii2错误:yii\base\UnknownMethodException:调用未知方法:yii\web\UrlManager :: addRules()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

今天更新composer依赖项(使用composer更新命令)后,我的Yii2应用程序崩溃 - 它引发未知方法 - yii \base\UnknownMethodException:调用未知方法:yii \web\UrlManager :: addrules()



检查 vendor / yiisoft / yii2 / web / UrlManager.php 文件后, addRule。
和整个类 UrlManager 与存储库中的类不同。



我的composer.json:

 minimum-stability:dev,
require:{
php: = 5.4.0,
yiisoft / yii2:*,
yiisoft / yii2-bootstrap:*,
yiisoft / yii2-swiftmailer: ,
yiisoft / yii2-gii:2.0.0-beta,
claudejanz / yii2-mygii:*,
kartik-v / yii2-grid :dev-master,
kartik-v / yii2-builder:dev-master,
2 amigos/yii2-switch-widget:*,
yiisoft / yii2-jui:*,
DsXack / yii2-underscore:*,
2 amigos/yii2-editable-widget:*,
warrence / yii2-kartikgii:*
},
require-dev:{
yiisoft / yii2-codeception:*,
yiisoft / yii2-debug:*
},


解决方案>

这里说明了为什么会发生这种情况:


我认为这也是作曲家依赖解析器做出意想不到的事情:




  • 您需要在composer.json中使用 yiisoft / yii2 ,但是没有安装composer asset插件。

  • 那么依赖解析器不会找到包含供应商 bower-asset 的包,因此它会查找没有冲突的其他版本的 yiisoft / yii2 li>
  • 结果是安装要安装的yii2测试版。


前面提到的正确解决方案是安装 composer-asset-plugin

  php composer.phar global requirefxp / composer-asset-plugin:1.0。* @ dev 


After todays update of composer dependencies (with composer update command) my Yii2 application became broken - It throws Unknown Method – yii\base\UnknownMethodException: Calling unknown method: yii\web\UrlManager::addRules()

After inspecting vendor/yiisoft/yii2/web/UrlManager.php file I found that there is no method addRule. And the whole entire class UrlManager is different from the class in the repository.

My composer.json:

"minimum-stability": "dev",
"require": {
    "php": ">=5.4.0",
    "yiisoft/yii2": "*",
    "yiisoft/yii2-bootstrap": "*",
    "yiisoft/yii2-swiftmailer": "*",
    "yiisoft/yii2-gii": "2.0.0-beta",
    "claudejanz/yii2-mygii": "*",
    "kartik-v/yii2-grid": "dev-master",
    "kartik-v/yii2-builder": "dev-master",
    "2amigos/yii2-switch-widget": "*",
    "yiisoft/yii2-jui": "*",
    "DsXack/yii2-underscore": "*",
    "2amigos/yii2-editable-widget": "*",
    "warrence/yii2-kartikgii": "*"
},
"require-dev": {
    "yiisoft/yii2-codeception": "*",
    "yiisoft/yii2-debug": "*"
},

解决方案

Here is an explaination of why this happened:

I think this is again the composer dependency resolver doing unexpected things:

  • you require yiisoft/yii2 in your composer.json but do not have the composer asset plugin installed.
  • then the dependency resolver does not find packages with vendor bower-asset so it looks for other versions of yiisoft/yii2 that do not have conflict
  • The result is to install the beta version of yii2 to be installed

The correct solution as already mentioned is to install the composer-asset-plugin:

php composer.phar global require "fxp/composer-asset-plugin:1.0.*@dev"

这篇关于Yii2错误:yii\base\UnknownMethodException:调用未知方法:yii\web\UrlManager :: addRules()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆