我有一个包含以下字段的Doctrine表:
Article:
columns:
title:
type: string(40)
content:
type: string(255)
publish:
type: boolean
我正在创建一个自定义表单在我的网站上创建文章。在我的自定义表单中,我有一个publish
字段的复选框。在提交表单时,如果复选框被选中,则它的表单值返回为"on"。如果未选中该复选框,则表示表单值不存在。
因为我正在使用扩展Doctrine的模型形式的形式,所以我希望能够在通过有效性时简单地执行$this->form->save();
。
但是如果publish
的复选框只给出on
的值或什么都没有,那么这两个值对数据库都无效。表单保存正确,但publish
的数据库值始终是默认的,无论复选框是否选中
解决这个问题的正确方法是什么?
另外,您如何处理选择sfWidgets?传递的值是一个值数组。$this->form-save()
似乎忽略了这些数组。
您是否必须手动从表单中获取值并从值中创建Doctrine Collection并以这种方式保存它?或者Symfony希望您使用更好的方法?
是否发布sfValidatorBoolean
实例的验证器?如果是,它应该返回false。
你关于选择小部件的问题需要更多的阐述。请粘贴您表单的configure
方法,您从$form->getValues()
接收的值,以及您期望接收的值。