Php 如何在sonata:admin:generate之后更改ID字段行为
我有一个新的管理控制器,它扩展了Sonata的CRUDController类。我使用Php 如何在sonata:admin:generate之后更改ID字段行为,php,symfony,sonata-admin,Php,Symfony,Sonata Admin,我有一个新的管理控制器,它扩展了Sonata的CRUDController类。我使用sonata:admin:generate命令生成了它 还有一个新的PostAdmin.php文件定义了几个字段行为 以下是实体使用的表格: mysql> DESC post; +--------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | E
sonata:admin:generate
命令生成了它
还有一个新的PostAdmin.php文件定义了几个字段行为
以下是实体使用的表格:
mysql> DESC post;
+--------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| title | varchar(255) | NO | | NULL | |
| author | varchar(255) | NO | | NULL | |
| slug | varchar(255) | NO | | NULL | |
| body | longtext | NO | | NULL | |
+--------+--------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
我的问题是:如何在我的CMS中自动填充ID字段?
现在,它显示为一个用户必须填写的普通int字段,这就引入了大量跳过数字的可能性(更不用说对用户来说很烦人)。我想改变这一点 这可以通过您的
PostAdmin
类实现:
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('title', 'text')
->add('body', 'textarea')
;
}
您需要删除
->add('id')
行,以便它不是表单的一部分。因为它不是创建所必需的,并且无论如何都不应该被编辑。这可以通过您的PostAdmin
类实现:
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('title', 'text')
->add('body', 'textarea')
;
}
您需要删除
->add('id')
行,以便它不是表单的一部分。因为它不是创建所必需的,而且无论如何都不应编辑。谢谢。删除该定义中的字段(正如您所建议的)就成功了。(有趣的是,我不得不重新添加“slug”位以使应用程序满意。)谢谢。删除该定义中的字段(正如您所建议的)就成功了(有趣的是,我不得不重新添加“slug”位以使应用程序满意)