Php Yii 2检查Yii\base\Model中是否存在函数

Php Yii 2检查Yii\base\Model中是否存在函数,php,arrays,loops,yii2,Php,Arrays,Loops,Yii2,我试图解决标准gii中的cheek函数问题 我需要检查yii\base\Model中是否存在函数 如果存在,则向该函数添加前缀 例如,如果使用yii2\gii生成模型 你会有这样的事情 /** * @return \yii\db\ActiveQuery */ public function getErrors() { return $this->hasMany(Error::className(), ['groupId' => '

我试图解决标准gii中的cheek函数问题 我需要检查yii\base\Model中是否存在函数 如果存在,则向该函数添加前缀 例如,如果使用yii2\gii生成模型 你会有这样的事情

 /**
     * @return \yii\db\ActiveQuery
     */
    public function getErrors()
    {
        return $this->hasMany(Error::className(), ['groupId' => 'id']);
    }
我需要在生成时更改函数名

/**
     * @return \yii\db\ActiveQuery
     */
    public function funky_key_getErrors()
    {
        return $this->hasMany(Error::className(), ['groupId' => 'id']);
    }
我扩展了基本的gii和重写函数,但没有帮助 我的代码来自generators\model\Generator,我想我需要检查这个函数中的$relations

        protected function generateRelations()
            {
\before basik yii code\
            $relations = self::checkExistClass($relations);
            return $relations;
            }

   private static function checkExistClass($relations)
    {
        foreach ($relations as $name => $relation) {
            foreach ($relation as $functionName => $functionValue) {
                $functionNameGet = 'get' . $functionName;
                $directory = new Model;
                if (method_exists($directory, $functionNameGet)) {
                    $relation['funky_key_' . $functionName] = $functionValue;
                    unset($relation[$functionName]);
                }
            }
        }
        return $relations;
    }

你到底为什么要改变yii的这种内部功能。他们以一种非常有条理的方式编写了他们的代码,可能您的更改会妨碍其他功能。@Neeraj Kumar,他们不会检查函数是否已经存在,我有一个错误,因为当我生成函数时,它具有相同的函数,因此我需要为它添加前缀或其他内容