protected function getRequiredUseClasses(array $fields, array $additions = [])
    {
        $commands = [];

        foreach ($additions as $addition) {
            $commands[] = $this->getUseClassCommand($addition);
        }

        $collections = $this->getRelationCollections($fields, 'form');

        foreach ($collections as $collection) {
            $command = $this->getUseClassCommand($collection->getFullForeignModel());

            if (!in_array($command, $commands)) {
                $commands[] = $this->getUseClassCommand($collection->getFullForeignModel());
            }
        }

        // Attempt to include classes that don't start with \\ with using command.
        foreach ($fields as $field) {
            if (!empty($field->onStore) && !in_array($field->onStore, $commands)) {
                $commands[] = $this->extractNamespace($field->onStore);
            }

            if (!empty($field->onUpdate) && !in_array($field->onUpdate, $commands)) {
                $commands[] = $this->extractNamespace($field->onUpdate);
            }
            // Extract the name spaces fromt he custom rules
            $customRules = $this->extractCustomValidationRules($field->getValidationRule());
            $namespaces = $this->extractCustomValidationNamespaces($customRules);
            foreach ($namespaces as $namespace) {
                $commands[] = $this->getUseClassCommand($namespace);
            }
        }

        usort($commands, function ($a, $b) {
            return strlen($a) - strlen($b);
        });

        return implode(PHP_EOL, array_unique($commands));
    }
protected function getRequiredUseClasses(array $fields, array $additions = [])
    {
        $commands = [];

        foreach ($additions as $addition) {
            $commands[] = $this->getUseClassCommand($addition);
        }

        $collections = $this->getRelationCollections($fields, 'form');

        foreach ($collections as $collection) {
            $command = $this->getUseClassCommand($collection->getFullForeignModel());

            if (!in_array($command, $commands)) {
                $commands[] = $this->getUseClassCommand($collection->getFullForeignModel());
            }
        }

        // Attempt to include classes that don't start with \\ with using command.
        foreach ($fields as $field) {
            if (!empty($field->onStore) && !in_array($field->onStore, $commands)) {
                $commands[] = $this->extractNamespace($field->onStore);
            }

            if (!empty($field->onUpdate) && !in_array($field->onUpdate, $commands)) {
                $commands[] = $this->extractNamespace($field->onUpdate);
            }
            // Extract the name spaces fromt he custom rules
            $customRules = $this->extractCustomValidationRules($field->getValidationRule());
            $namespaces = $this->extractCustomValidationNamespaces($customRules);
            foreach ($namespaces as $namespace) {
                $commands[] = $this->getUseClassCommand($namespace);
            }
        }

        usort($commands, function ($a, $b) {
            return strlen($a) - strlen($b);
        });

        return implode(PHP_EOL, array_unique($commands));
    }
protected function getRequiredUseClasses ( array $ fields , array $ additions = [ ] ) { $ commands = [ ] ; foreach ( $ additions as $ addition ) { $ commands [ ] = $ this -> getUseClassCommand ( $ addition ) ; } $ collections = $ this -> getRelationCollections ( $ fields , 'form' ) ; foreach ( $ collections as $ collection ) { $ command = $ this -> getUseClassCommand ( $ collection -> getFullForeignModel ( ) ) ; if ( ! in_array ( $ command , $ commands ) ) { $ commands [ ] = $ this -> getUseClassCommand ( $ collection -> getFullForeignModel ( ) ) ; } } // Attempt to include classes that don't start with \\ with using command. foreach ( $ fields as $ field ) { if ( ! empty ( $ field -> onStore ) && ! in_array ( $ field -> onStore , $ commands ) ) { $ commands [ ] = $ this -> extractNamespace ( $ field -> onStore ) ; } if ( ! empty ( $ field -> onUpdate ) && ! in_array ( $ field -> onUpdate , $ commands ) ) { $ commands [ ] = $ this -> extractNamespace ( $ field -> onUpdate ) ; } // Extract the name spaces fromt he custom rules $ customRules = $ this -> extractCustomValidationRules ( $ field -> getValidationRule ( ) ) ; $ namespaces = $ this -> extractCustomValidationNamespaces ( $ customRules ) ; foreach ( $ namespaces as $ namespace ) { $ commands [ ] = $ this -> getUseClassCommand ( $ namespace ) ; } } usort ( $ commands , function ( $ a , $ b ) { return strlen ( $ a ) - strlen ( $ b ) ; } ) ; return implode ( PHP_EOL , array_unique ( $ commands ) ) ; }
Gets the needed models to use for in the controller.

@param array $fields
@param array $additions

@return string
Gets the needed models to use for in the controller .