protected function generateRelationName($relations, $table, $key, $multiple)
{
// print_r($key);
static $baseModel;
if ($baseModel === null && isset($this->baseClass)) {
$baseClass = $this->baseClass;
$baseModel = new $baseClass();
}
if (!empty($key) && substr_compare($key, 'id', -2, 2, true) === 0 && strcasecmp($key, 'id')) {
$key = rtrim(substr($key, 0, -2), '_');
} else {
if (!empty($key) && substr_compare($key, 'id', 0, 2, true) === 0 && strcasecmp($key, 'id')) {
$key = ltrim(substr($key, 2, strlen($key)), '_');
}
}
if ($multiple) {
$key = Inflector::pluralize($key);
}
$name = $rawName = Inflector::id2camel($key, '_');
$i = 0;
while (isset($baseModel) && $baseModel->hasProperty(lcfirst($name))) {
$name = $rawName . $i++;
}
while (isset($table->columns[lcfirst($name)])) {
$name = $rawName . $i++;
}
while (isset($relations[$table->fullName][$name])) {
$name = $rawName . $i++;
}
return lcfirst($name);
}