/** * Creates ARForeignKeyField instance * * @param string $fieldName * @param string $foreignTableName * @param string $foreignClassName * @param int $dataType * @param int $typeLength */ public function __construct($fieldName, $foreignTableName, $foreignFieldName, $foreignClassName = null, ARSchemaDataType $dataType) { parent::__construct($fieldName, $dataType); $this->foreignClassName = !empty($foreignClassName) ? $foreignClassName : $foreignTableName; $this->foreignTableName = $foreignTableName; $this->foreignFieldName = $foreignFieldName; $this->referenceFieldName = $this->referenceName = ucfirst(substr($this->name, 0, -2)); if (!$this->referenceName) { $this->referenceName = $this->foreignClassName; } if (!$this->referenceFieldName) { $this->referenceFieldName = $this->name; } if ($this->foreignClassName != $this->referenceName) { $this->referenceName = $this->foreignClassName . '_' . $this->referenceName; } }