Skip to content

agencearcange/symfony-form-tree

This branch is 6 commits ahead of Yavin/symfony-form-tree:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

cf6bd7e · Sep 24, 2021

History

20 Commits
Sep 24, 2021
Feb 11, 2017
Sep 24, 2021
Sep 24, 2021
Sep 24, 2021
Feb 11, 2017
Feb 11, 2017
Sep 24, 2021
Sep 24, 2021
Sep 24, 2021
Jun 24, 2013

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%