Zend_Db 忽略我的默认字段值!
我正在为我正在做的项目使用 Zend Framework 1.7 和 MySQL 5.0 数据库。 系统的一部分是一个较长的表单,要求用户提供各种日期(以 dd/mm/yyyy 格式)以及一些整数字段。
在我的 MySQL 表中,所有这些字段的默认值为 null。 当我使用模型中的函数(扩展 Zend_Db_Table)保存表单数据时,任何空白整数字段都设置为 0,任何空白日期字段都设置为 0000-00 -00 - 在这两种情况下,它们都应该为null。
我相信这是因为 Zend_Db_Table->insert() 引用了所有值,包括空白值。 有什么办法可以改变这种行为吗? 我目前必须循环遍历字段组,并根据需要将它们设置为空。
干杯,
马特
I'm using Zend Framework 1.7 with a MySQL 5.0 database for a project I'm doing. Part of the system is a longish form that asks a user for various dates (in dd/mm/yyyy format) as well as some integer fields.
In my MySQL table, all these fields have a default of null. When I come to save the form data with a function in my model (which extends Zend_Db_Table), any blank integers fields are set to 0, and any blank date fields are set to 0000-00-00 - in both cases, they should be null.
I believe this is because Zend_Db_Table->insert() is quoting all values, including blank ones. Is there any way I can alter this behaviour? I'm currently having to loop through groups of fields, setting them to null as appropriate.
Cheers,
Matt
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试:
Try:
vartec - 感谢您的帮助。 你的想法给了我一个很好的起点。 我进一步开发了它,扩展了 Zend_Db_Table,添加了一个函数,该函数将从 MySQL 中提取列元数据,并使用它来设置默认值。 我在下面发布了它的草稿。 我还没有尝试简化它,只是涵盖了我立即需要的字段类型。 希望它可以帮助其他遇到同样问题的人。
vartec - thanks for your help. Your ideas gave me a good starting point. I've developed it further, extending Zend_Db_Table, adding a function that will suck the column metadata out of MySQL, and use this to set default values. I've posted a rough draft of it below. I haven't made any attempt to simplify it yet, and have only covered the field types I need immediately. Hopefully, it might help others having the same problem.