yavin / symfony-form-tree
创建具有缩进的树形结构的下拉字段
v1.0.2
2017-02-11 10:47 UTC
Requires
- php: >=5.5.9
- doctrine/common: ~2.0
- doctrine/orm: ~2.0
- gedmo/doctrine-extensions: ~2.1
- symfony/doctrine-bridge: ~3.0
- symfony/form: ~3.0
- symfony/options-resolver: ~3.0
- symfony/property-access: ~3.0
Requires (Dev)
- ext-pdo_sqlite: *
- phpunit/phpunit: ~4.0
This package is auto-updated.
Last update: 2024-08-28 02:02:00 UTC
README
此扩展提供在 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>
安装
-
使用 composer.json
composer require yavin/symfony-form-tree:^1.0
-
在服务文件中添加类型猜测器(可选)
<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 }
-
然后添加字段到树模型。在这个例子中
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', ]); }
此扩展假设在树模型中您有
treeLeft
和treeLevel
字段。这可以在字段选项中更改。这里 是示例树实体。