正如我已经发现的那样,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)
在面向对象的编程中,您应该使用实体的构造函数来设置属性的默认值:
public function __construct() {
$this->sale = false;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
21095 次 |
最近记录: |