我的问题非常简单。我有这个模型,我想在其中一个字段(finRango
)中插入一个空值的记录,使用doctrine orm的数据夹具。这是我尝试过的:
fila41_zona5:
MetodoEnvio: dhl
zona: 5
inicioRango: 20.00
finRango: NULL
precio: 7.15
也尝试过:
fila41_zona5:
MetodoEnvio: dhl
zona: 5
inicioRango: 20.00
finRango:
precio: 7.15
甚至:
fila41_zona5:
MetodoEnvio: dhl
zona: 5
inicioRango: 20.00
precio: 7.15
我始终在finRango
字段中获得零(0.00)。我从数据库模式中定义了我的模式,并且此字段未使用NOT NULL
定义。它是表的主键的一部分,但它可以是NULL
(在特定情况下我需要它为null,因为模型代表的是什么)。这是任务php symfony doctrine:build-schema
生成的模式定义:
//An extract from my config/doctrine/schema.yml:
PrecioEnvio:
connection: doctrine
tableName: PrecioEnvio
columns:
idmetodo:
type: integer(4)
fixed: false
unsigned: true
primary: true
autoincrement: false
zona:
type: integer(4)
fixed: false
unsigned: false
primary: true
autoincrement: false
iniciorango:
type: 'decimal(10, 2)'
fixed: false
unsigned: false
primary: true
autoincrement: false
finrango:
type: 'decimal(10, 2)'
fixed: false
unsigned: false
primary: true
autoincrement: false
precio:
type: 'decimal(10, 2)'
fixed: false
unsigned: false
primary: false
notnull: true
autoincrement: false
relations:
MetodoEnvio:
local: idmetodo
foreign: id
type: one
这是表的SQL定义,从中生成此模式:
CREATE TABLE IF NOT EXISTS `sawpruebaTienda`.`PrecioEnvio` (
`idMetodo` INT UNSIGNED NOT NULL ,
`zona` INT(3) NOT NULL ,
`inicioRango` DECIMAL(10,2) NOT NULL COMMENT 'Marca el inicio del rango de peso para el cual este precio aplica.' ,
`finRango` DECIMAL(10,2) NULL COMMENT 'Marca el fin del rango de peso para el cual este precio aplica.' ,
`precio` DECIMAL(10,2) NOT NULL ,
PRIMARY KEY (`idMetodo`, `inicioRango`, `finRango`, `zona`) ,
INDEX `fk_PrecioEnvio_MetodoEnvio` (`idMetodo` ASC) ,
CONSTRAINT `fk_PrecioEnvio_MetodoEnvio`
FOREIGN KEY (`idMetodo` )
REFERENCES `sawpruebaTienda`.`MetodoEnvio` (`id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;
即使在架构中没有大写,也可以正确解释字段inicioRango
和finRango
。唯一的问题是当我尝试将NULL
值存储在finRango
上时。
我正在使用MySQL!
感谢您的帮助!
答案 0 :(得分:0)
也许这有效:
fila41_zona5:
MetodoEnvio: dhl
zona: 5
inicioRango: 20.00
finRango: ~
precio: 7.15
答案 1 :(得分:0)
如果将默认值设置为NULL,该怎么办?
default: null
notnull: false