我有一个新的管理控制器,可以扩展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字段,这为跳过的数字引入了很多潜力(更不用说对用户来说很烦人)。我想改变这一点。
答案 0 :(得分:2)
这可以通过PostAdmin
类的configuring the Form Mapper来实现:
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('title', 'text')
->add('body', 'textarea')
;
}
您需要删除->add('id')
行,使其不是表单的一部分。因为它不需要创建,所以无论如何都不应该编辑。