【问题标题】:Declaration of Child method should be compatible to Parent Method子方法的声明应与父方法兼容
【发布时间】:2015-08-15 14:48:13
【问题描述】:

在 Yii2 上遇到这个错误。我不知道到底是什么问题。我只是将我的源代码从 Windows 迁移到 Mac OS。我尝试克隆我的整个项目仍然出现错误。

common\models\Product::getAttributes()的声明应该和yii\base\Model::getAttributes($names = NULL, $except = Array)兼容

这些是我尝试过的:

  1. 将整个项目克隆到 Mac OS。 - 存在上述错误。
  2. 将整个项目克隆到另一台 Windows 机器上。-项目运行良好。

我在这个项目中使用 yii2。

【问题讨论】:

    标签: php yii2


    【解决方案1】:

    从错误消息中可以看出,您覆盖了 yii\base\Model getAttributes() 方法。 common\models\Product 是从 yii\db\ActiveRecord 扩展而来的,ActiveRecord 是从 yii\base\Model 扩展而来的。

    如果你真的想重写这个方法,列出所有参数(见here),在IDE的帮助下更容易做到。顺便说一句,这是 PHP 特性,与 OS 或 Yii2 无关。

    如果它是您用于其他目的的自定义方法,您需要重命名它以解决冲突。

    【讨论】:

    • 你好!谢谢你的帮助。我是重写方法的新手,你的解释真的很有帮助。:) 另外,我添加了由 visualex 添加的 ($names = NULL, $except = Array)
    【解决方案2】:

    您的方法必须接受相同的参数($names = NULL,$except = Array)

    【讨论】:

      猜你喜欢
      • 2011-03-08
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 2016-06-11
      • 1970-01-01
      相关资源
      最近更新 更多