Skip to content

agencearcange/symfony-form-tree

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Symfony Form Tree extension

CI

Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require

This is a fork from abandoned repo: https://github.com/Yavin/symfony-form-tree

This extension provide displaying doctrine tree entity types in symfony forms. It add a prefix to option names in select list that indicates tree level.

<select name="..." data-level-prefix="-">
    <option value="1">Motors</option>
    <option value="2">Electronics</option>
    <option value="3">-Cell phones</option>
    <option value="4">--Samsung</option>
    <option value="5">-Computers</option>
    <option value="6">Fasion</option>
</select>

Instalation

  1. With composer.json

    composer require agencearcange/symfony-form-tree
    
  2. Add type guesser in your services file (optional):

    <service class="Yavin\Symfony\Form\Type\TreeTypeGuesser">
        <argument type="service" id="doctrine"/>
        <tag name="form.type_guesser"/>
    </service>

    or if you use yml format:

    services:
        symfony.form.type_guesser.tree:
            class: Yavin\Symfony\Form\Type\TreeTypeGuesser
            arguments: [ "@doctrine" ]
            tags:
                - { name: form.type_guesser }
  3. Then add field to tree model. In this example

    use Yavin\Symfony\Form\Type\TreeType;
    
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('category'); //extension will guess field type
    
        //or this is full example with default options:
    
        $builder->add('category', TreeType::class, [
            'class' => Category::class, // tree class
            'levelPrefix' => '-',
            'orderFields' => ['treeLeft' => 'asc'],
            'prefixAttributeName' => 'data-level-prefix',
            'treeLevelField' => 'treeLevel',
        ]);
    }

    This extension assume that in tree model You have treeLeft and treeLevel fields. It can be changed in field options.

    Here is example tree entity.

Other

License

MIT

About

Symfony Form Tree type

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%