Php Yii 2检查Yii\base\Model中是否存在函数
我试图解决标准gii中的cheek函数问题 我需要检查yii\base\Model中是否存在函数 如果存在,则向该函数添加前缀 例如,如果使用yii2\gii生成模型 你会有这样的事情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' => '
/**
* @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,他们不会检查函数是否已经存在,我有一个错误,因为当我生成函数时,它具有相同的函数,因此我需要为它添加前缀或其他内容