如何在 sonata:admin:generate 之后更改 ID 字段行为
How to change ID field behavior after sonata:admin:generate
我有一个新的管理控制器,它扩展了 Sonata 的 CRUDController class。我使用 sonata:admin:generate
命令生成了它。
还有一个新的 PostAdmin.php 文件定义了几个字段行为。
下面是实体使用的table:
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
configuring the Form Mapper class:
来实现
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('title', 'text')
->add('body', 'textarea')
;
}
您需要删除 ->add('id')
行,使其不属于表单的一部分。因为它不是创建所必需的,也不应该被编辑。
我有一个新的管理控制器,它扩展了 Sonata 的 CRUDController class。我使用 sonata:admin:generate
命令生成了它。
还有一个新的 PostAdmin.php 文件定义了几个字段行为。
下面是实体使用的table:
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
configuring the Form Mapper class:
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('title', 'text')
->add('body', 'textarea')
;
}
您需要删除 ->add('id')
行,使其不属于表单的一部分。因为它不是创建所必需的,也不应该被编辑。