gregwar / form-bundle
提供“entity_id”类型(读取“实体标识”)
2.7
2015-06-02 15:43 UTC
Requires
- doctrine/orm: ~2.2,>=2.2.3
- symfony/form: ~2.3
- symfony/property-access: ~2.3
- symfony/symfony: ~2.3
- symfony/validator: ~2.3
Requires (Dev)
- doctrine/doctrine-bundle: ~1.2
- symfony/twig-bundle: ~2.3
This package is auto-updated.
Last update: 2024-08-24 04:44:28 UTC
README
GregwarFormBundle
提供表单类型 "entity_id"
安装
要安装 GregwarFormBundle
,请运行 composer require gregwar/form-bundle
。
然后,在应用程序内核中注册该捆绑包
<?php // app/AppKernel.php //... public function registerBundles() { $bundles = array( ... new Gregwar\FormBundle\GregwarFormBundle(), ... ); ...
最后,将以下块添加到配置中
# app/config/config.yml
gregwar_form: ~
使用方法
entity_id 是包含实体 ID 的字段,这假设您设置了 JavaScript 或任何 UI 逻辑来程序化填充它。
使用方式类似于实体字段类型,除了查询构建器必须返回一个唯一的结果。一个完整的示例
<?php //... $builder ->add('city', EntityIdType::class, array( 'class' => 'Project\Entity\City', 'query_builder' => function(EntityRepository $repo, $id) { return $repo->createQueryBuilder('c') ->where('c.id = :id AND c.available = 1') ->setParameter('id', $id); } )) ;
请注意,如果您未提供任何查询构建器,则将使用 ->find($id)
。
您还可以选择显示字段,通过将 hidden
选项传递给 false
<?php //... $builder ->add('city', EntityIdType::class, array( 'class' => 'Project\Entity\City', 'hidden' => false, 'label' => 'Enter the City id' )) ;
使用 property
选项,您还可以使用除主键之外的其他标识符
<?php //... $builder ->add('recipient', EntityIdType::class, array( 'class' => 'Project\Entity\User', 'hidden' => false, 'property' => 'login', 'label' => 'Recipient login' )) ;
注意事项
这个实现可能存在错误,这个包只是作为表单字段类型的一个想法,这可能对 Symfony2 项目非常有用。
许可证
此捆绑包受 MIT 许可证约束