首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CFWheels:暂时关闭validatesPresenceOf()

CFWheels:暂时关闭validatesPresenceOf()
EN

Stack Overflow用户
提问于 2016-03-30 22:56:59
回答 1查看 43关注 0票数 0

我有一个模型,其中我使用validatesPresenceOf()检查表中是否存在id列。

代码语言:javascript
复制
<cfscript>
    component extends="Model"
    {   
        public function init()
        {
            validatesPresenceOf(property="id", message="error msg");
            table(mytable);
        }
    }
</cfscript>

现在,我的表中的id列是通过触发器自动生成的字段,因此除了下面的情况外,我实际上不需要查看id是否不为NULL。

代码语言:javascript
复制
<select name=data>
<option value=""></option>
<option value=data.id></option>
</select>

上面,我使用check验证来检查用户是否提交了一个带有id的选项值,而不是空的值。因此,这里我使用validatesPresenceOf()函数来查看是否提交了id。

但是在另一个位置,我必须将数据保存到这个表中,我的代码如下:

代码语言:javascript
复制
data = model(tbl.others).new();
data.name = name;
data.save();

上面的代码没有将记录插入到表中,因为id列上有validatesPresenceOf(),而且正如您所看到的,我没有在插入数据上设置id,因为它是表中的一个自动生成字段。

我的问题是有一个解决办法,也许我可以暂时关闭特定的id验证,或者我可以暂时验证id,然后删除该验证条件。

我尝试了以下方法,但不起作用:

代码语言:javascript
复制
public function custom_save(name)
{
    automaticValidations(false);
    data = model(mytable).new();
    data.name = name;
    automaticValidations(true);

    return data;
}
EN

回答 1

Stack Overflow用户

发布于 2016-03-30 23:56:46

您可以尝试根本不验证(使用模型)

http://docs.cfwheels.org/v1.4/docs/save

使用save()的模型类函数(如create()updateAll() )使用缺省为truevalidate参数。您可以将其设置为false,然后手动执行其他验证。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36312574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档