yavin/symfony-form-tree

创建具有缩进的树形结构的下拉字段

v1.0.2 2017-02-11 10:47 UTC

This package is auto-updated.

Last update: 2024-08-28 02:02:00 UTC


README

Build Status

此扩展提供在 symfony 表单中显示 doctrine 树形实体类型的功能。它为选择列表中的选项名称添加一个前缀,以指示树级别。

经过测试,应与 symfony 3.0+ 兼容

如果想在 symfony 2 中使用此功能,请查看此扩展的 "symfony-2" 分支

<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>

安装

  1. 使用 composer.json

    composer require yavin/symfony-form-tree:^1.0
    
  2. 在服务文件中添加类型猜测器(可选)

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

    或如果您使用 yml 格式

    services:
        symfony.form.type_guesser.tree:
            class: Yavin\Symfony\Form\Type\TreeTypeGuesser
            arguments: [ "@doctrine" ]
            tags:
                - { name: form.type_guesser }
  3. 然后添加字段到树模型。在这个例子中

    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',
        ]);
    }

    此扩展假设在树模型中您有 treeLefttreeLevel 字段。这可以在字段选项中更改。

    这里 是示例树实体。

其他

许可证

MIT