Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在sonata:admin:generate之后更改ID字段行为_Php_Symfony_Sonata Admin - Fatal编程技术网

Php 如何在sonata:admin:generate之后更改ID字段行为

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的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字段,这就引入了大量跳过数字的可能性(更不用说对用户来说很烦人)。我想改变这一点

这可以通过您的
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”位以使应用程序满意)