如何在奏鸣曲后更改ID字段行为:admin:generate

时间:2018-01-29 13:25:30

标签: php symfony sonata-admin

我有一个新的管理控制器,可以扩展Sonata的CRUDController类。我使用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字段,这为跳过的数字引入了很多潜力(更不用说对用户来说很烦人)。我想改变这一点。

1 个答案:

答案 0 :(得分:2)

这可以通过PostAdmin类的configuring the Form Mapper来实现:

protected function configureFormFields(FormMapper $formMapper)
{
    $formMapper
        ->add('title', 'text')
        ->add('body', 'textarea')
    ;
}

您需要删除->add('id')行,使其不是表单的一部分。因为它不需要创建,所以无论如何都不应该编辑。