Spot\Entity\Manager::fieldKeys PHP Метод

fieldKeys() публичный Метод

Groups field keys into names arrays of fields with key name as index
public fieldKeys ( ) : array
Результат array Key-named associative array of field names in that index
    public function fieldKeys()
    {
        $entityName = $this->entityName;
        $table = $entityName::table();
        $formattedFields = $this->fields();
        // Keys...
        $ki = 0;
        $tableKeys = ['primary' => [], 'unique' => [], 'index' => []];
        $usedKeyNames = [];
        foreach ($formattedFields as $fieldInfo) {
            $fieldName = $fieldInfo['column'];
            // Determine key field name (can't use same key name twice, so we have to append a number)
            $fieldKeyName = $table . '_' . $fieldName;
            while (in_array($fieldKeyName, $usedKeyNames)) {
                $fieldKeyName = $fieldName . '_' . $ki;
            }
            // Key type
            if ($fieldInfo['primary']) {
                $tableKeys['primary'][] = $fieldName;
            }
            if ($fieldInfo['unique']) {
                if (!is_array($fieldInfo['unique'])) {
                    $fieldInfo['unique'] = [$fieldInfo['unique']];
                }
                foreach ($fieldInfo['unique'] as $fieldInfoUnique) {
                    $fieldKeyName = $this->computeIndexName($table, $fieldInfoUnique) ?: $fieldKeyName;
                    $tableKeys['unique'][$fieldKeyName][] = $fieldName;
                    $usedKeyNames[] = $fieldKeyName;
                }
            }
            if ($fieldInfo['index']) {
                if (!is_array($fieldInfo['index'])) {
                    $fieldInfo['index'] = [$fieldInfo['index']];
                }
                foreach ($fieldInfo['index'] as $fieldInfoIndex) {
                    $fieldKeyName = $this->computeIndexName($table, $fieldInfoIndex) ?: $fieldKeyName;
                    $tableKeys['index'][$fieldKeyName][] = $fieldName;
                    $usedKeyNames[] = $fieldKeyName;
                }
            }
        }
        return $tableKeys;
    }