如何在Symfony2中设置默认值,以便自动CRUD生成的表单不需要这些字段?

Cze*_*ogy 11 php crud symfony

正如我已经发现的那样,Doctrine2" 不支持通过SQL中的"DEFAULT"关键字在列中设置默认值....您可以使用类属性作为默认值 ".

class Product
{

// ...

    /**
     * @var string $name
     *
     * @ORM\Column(name="name", type="string", length=255)
     */
    private $name = "";

    /**
     * @var string $sale
     *
     * @ORM\Column(name="sale", type="boolean")
     */
    private $sale = false;
Run Code Online (Sandbox Code Playgroud)

但即使我这样做,生成的CRUD表单仍然要求我填写所有表格.在布尔属性的情况下,这甚至意味着我只能将其设置为true(即1).

难道我做错了什么?

(我知道我可以关闭验证,但我想解决问题,而不是绕过它)

Jul*_*cro 16

您的布尔值需要将nullable设置为true:

/**
 * @var string $sale
 *
 * @ORM\Column(name="sale", type="boolean", nullable=true)
 */
private $sale = false;
Run Code Online (Sandbox Code Playgroud)


Fre*_*ndo 6

在面向对象的编程中,您应该使用实体的构造函数来设置属性的默认值:

public function __construct() {
    $this->sale = false;
}
Run Code Online (Sandbox Code Playgroud)