我已经设置了一个数据库表,其中ID值将由我的应用程序而不是数据库创建。
/**
* @ORM\Column(type="bigint", precision=14, options={"unsigned":true})
* @ORM\Id()
* @ORM\GeneratedValue("NONE")
*/
private $id;
这在symfony中运行正常,但我尝试使用EasyAdmin编辑表格,而EasyAdmin只是忽略了' id'列。
我发现我可以从EasyAdmin文档中manipulate edit/new views configuration。
现在我有以下配置(提到的id
用于Product
):
easy_admin:
entities:
- AppBundle\Entity\Category
- AppBundle\Entity\Product
问题:
1-如何设置YAML配置,以便显示id
字段?我发现这部分有效:
easy_admin:
entities:
Product:
class: AppBundle\Entity\Product
form:
fields:
- 'id'
但是这只显示了' id'有没有办法告诉我我想要' id'除了所有其他字段,我不必手动列出它们吗?
2-我的原始配置使用YAML文件中带有破折号( - )的实体列表。我是一个YAML菜鸟,当我制作一个Product:
键我不能再使用短划线时,有没有办法继续使用短划线列表,只是对产品进行例外处理?例如,下面的代码不起作用,它表示它不是有效的YAML。
easy_admin:
entities:
- AppBundle\Entity\Category
Product:
class: AppBundle\Entity\Product
form:
fields:
- 'id'
好吧,现在我解决了这样的问题并完全放弃了破折号:
easy_admin:
entities:
Category:
class: AppBundle\Entity\Category
Store:
class: AppBundle\Entity\Store
Product:
class: AppBundle\Entity\Product
edit:
fields:
- { property: 'stores', label: 'Stores', type_options: { by_reference: false } }
form:
fields:
- 'id'
- 'name'
- 'category'
- 'stores'
答案 0 :(得分:0)
Q1:您可以使用基于实体控制器的自定义。请参阅此处的文档:https://symfony.com/doc/master/bundles/EasyAdminBundle/book/complex-dynamic-backends.html#customization-based-on-entity-controllers
app/config/config.yml
User:
class: AppBundle\Entity\User
controller: UserBundle\Controller\Admin\UserController
然后在你的UserController中你可以有这样的东西。注意你必须在方法签名中使用确切的实体名称:在你的情况下创建用户 EntityFormBuilder
protected function createUserEntityFormBuilder($entity, $view)
{
$form = parent::createEntityFormBuilder($entity, $view);
$form->add('Anyfield', TextType::class, [
'label' => 'id' // feel free to add other options
]); // add fieldlike you would do in FormType
$form->remove('anyField');
return $form;
}
Q2:我无法回答这个问题。我不使用" Dashed"符号。 也许请看一下doc:https://symfony.com/doc/current/components/yaml/yaml_format.html#collections