如果一张表在某些字段上有默认值并且不允许使用 NULL,那么人们会期望插入脚本使用这些默认值,就像 MariaDB/MySQL 通常那样。例如,如果表 products 有一个 AI 字段“id”、一个必填字段“name”和两个必填字段“active”和“featured”,它们都默认为 1,那么查询
INSERT INTO products (name) VALUES ('someName');
自动插入 1 作为 active 和 features 的值。但是,当像这样使用 Phalcon 的模型时:
$product = new Products();
$product->setName('someName');
$product->save();
返回验证错误,说“活动”和“特色”是必需的。
在模型生成期间我应该提供一个标志,以便 Phalcon 工具收集默认值并将其输入到模型类中,还是另一种方式让 Phalcon 在找到时自动使用默认值?我认为最好的方法是忽略未设置的字段。我可以让模型这样做吗?