gpt4 book ai didi

php - 科哈纳 3.1 ORM : Empty model property value saved as 0 (zero) instead of NULL

转载 作者:可可西里 更新时间:2023-11-01 00:16:51 25 4
gpt4 key购买 nike

我有两个模型,Product 和 Product_Methodology。在我的产品编辑 View 中,我有一个选择表单字段来选择多种方法之一或不选择(第一个选项为空)。在我的产品表中,我有一个 INT(10) methodology_id 属性,该属性与从选择表单字段中选择的方法的 id 一起保存。一切正常,直到今天我不得不对系统进行调整,从现在开始选择一种方法是可选的。所以我更改了产品表的 methodology_id 字段以允许 NULL 值并删除了模型上的 not_empty 验证规则。

问题是,现在当我保存模型时选择空选项,而不是预期的 NULL,我得到一个 0(零)值。

有什么线索吗?非常感谢,如果不是很清楚,请告诉我。

最佳答案

您使用什么表单输入来选择方法?是吗<select> ?如果是这样,则在没有选择方法时,选择选项的值可能设置为0,并与其他表单数据一起发送。

在这种情况下,我使用模型的 filters() 制作自定义过滤器方法,当值为 empty() 时将值设置为 NULL(如 PHP 所处理的那样) ,像这样:

public function filters()
{
return array(
'methodology_id' => array(
array('Filter::null', array(':value')),
),
);
}

其中 Filter 是具有静态方法的辅助类。喜欢...:

class Kohana_Filter {

public static function null($value)
{
return (empty($value) ? NULL : $value);
}

}

希望这有帮助:)

关于php - 科哈纳 3.1 ORM : Empty model property value saved as 0 (zero) instead of NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6206218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com