symfony2 / doctrine 2 / Mysql : 空值保存为空字符串



我有一个基本的symfony2表单,我可以在其中为我的字段设置一个值。

我刚刚发现空值保存为空字符串,我希望会引发异常,因为不接受空值。

我的映射(在特征内):

/**
 * @ORMColumn(name="name", type="string", length=100, nullable=false)
 */
protected $name;

我的领域 :

        ->add('name', null, array(
                'label'=>'Nom détaillé',
                'required' => false))

将所需设置为 true 并定义断言规则效果很好,但在这里我正在尝试解决此转换问题。

如果我在 SetName 方法中放置一个变量转储,我确实会得到一个空值,该值后来在我的数据库中保存为空字符串。我该如何解决?

编辑:显示创建表t

CREATE TABLE `recipe` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `isProduct` tinyint(1) NOT NULL,
 `portions` int(11) DEFAULT NULL,
 `nickname` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
 `shortDescription` varchar(500) COLLATE utf8_unicode_ci DEFAULT NULL,
 `weight` decimal(10,2) DEFAULT NULL,
 `isPrivate` tinyint(1) NOT NULL,
 `name` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
 `slug` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
 `content` longtext COLLATE utf8_unicode_ci,
 `createdAt` datetime NOT NULL,
 `updatedAt` datetime NOT NULL,
 `viewCount` int(11) NOT NULL,
 `parentId` int(10) unsigned DEFAULT NULL,
 `userId` int(10) unsigned DEFAULT NULL,
 `createdBy` int(10) unsigned DEFAULT NULL,
 `updatedBy` int(10) unsigned DEFAULT NULL,
 PRIMARY KEY (`id`),
 KEY `IDX_DD24B40110EE4CEE` (`parentId`),
 KEY `IDX_DD24B40164B64DCC` (`userId`),
 KEY `IDX_DD24B401D3564642` (`createdBy`),
 KEY `IDX_DD24B401E8DE7170` (`updatedBy`),
 CONSTRAINT `FK_DD24B40110EE4CEE` FOREIGN KEY (`parentId`) REFERENCES `recipe` (`id`) ON DELETE SET NULL,
 CONSTRAINT `FK_DD24B40164B64DCC` FOREIGN KEY (`userId`) REFERENCES `user` (`id`),
 CONSTRAINT `FK_DD24B401D3564642` FOREIGN KEY (`createdBy`) REFERENCES `user` (`id`) ON DELETE SET NULL,
 CONSTRAINT `FK_DD24B401E8DE7170` FOREIGN KEY (`updatedBy`) REFERENCES `user` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
似乎

您只需要针对变量添加严格的等价检查===,然后throw new Exception()它是否为空

相关内容

  • 没有找到相关文章

最新更新