首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CFWheels -未插入记录

CFWheels -未插入记录
EN

Stack Overflow用户
提问于 2012-04-12 17:12:04
回答 2查看 645关注 0票数 1

一般来说,我对CFWheels和框架都很陌生。

我正在跟踪轮子网站上的屏幕:http://cfwheels.org/screencasts/

我按照is...the唯一的区别来看教程,他的表名为"people",我的表名为"users“。我做了相应的改变,但其他一切都保持不变。

他的单数是“人”,我的单数是“使用者”。

下面是我的"User.cfc“控制器中的插入代码:

代码语言:javascript
复制
<cfcomponent extends="Controller" output="true">

    <cffunction name="register">

        <cfset user = model("user").new() />

    </cffunction>

    <cffunction name="create">

        <cfset params.user['userUUID'] = createUUID() />
        <cfset params.user['userCreated'] = createODBCDateTime(now()) />
        <cfset params.user['userModified'] = createODBCDateTime(now()) />

        <cfset user = model("user").new(params.user) />
        <cfset user.save() />

    </cffunction>

</cfcomponent>

现在,在我看来,我还在使用表单助手等,如下所示:

代码语言:javascript
复制
<cfparam name="user" />

<cfoutput>

#startFormTag( action="create" )#

<fieldset>

    <legend>Register</legend>

    #textField( label="User Name http://#cgi.server_name#/user/", objectName="user", property="userName" )#
    #textField( label="Email Address", objectName="user", property="userEmail" )#
    #textField( label="Password", objectName="user", property="userPassword" )#
    #submitTag( value="Register" )#

</fieldset>

#endFormTag()#

</cfoutput>

很简单对吧?所以我不明白为什么不插进去。它与命名我的CFC "user“有关吗?还有一个名为"user”的表,其单名设置为“user”吗?

当我提交表格时,没有错误。它执行得很好,但是如果我查看DB,就什么都没有了。

有一件事,我thought...is...exactly怎么知道轮子甚至知道要找哪张桌子?对此似乎没有任何解释。也许它只是定位错了桌子?

非常感谢,迈克尔

解决了!

大家好,这是其他人可能遇到的最新情况。之所以没有发生任何事情,是因为我的数据库表要求某些字段不为null。CFWheels没有抛出任何错误。一旦我将值传递给这些字段,就可以了;所以,一定要检查出这个值!

希望这能有所帮助。

EN

回答 2

Stack Overflow用户

发布于 2012-04-12 17:37:07

迈克尔,首先我建议您将控制器重命名为Users.cfc (复数)。

在轮子(以及Rails和其他类似的配置框架上的约定)中,模型是单数的(User.cfc),而控制器和表是复数的(Users.cfc)。您的代码看起来都很可靠,唯一让我吃惊的是,您的控制器被认为是"User.cfc“。

在create/update控制器方法中,我可能做的一件事是这样的:

代码语言:javascript
复制
if (user.save()){
    flashInsert(success="The user was created successfully.");
    redirectTo(action="index");
} else {
    flashInsert(error="There was an error creating the user.");
    renderPage(action="new");
}

user.save()将返回一个布尔值,如果发生错误而保存失败,则该条件允许您执行一些实际的错误处理/调查。

关于轮子如何知道要找哪张桌子的问题,车轮是按照惯例来做的。在这里解释一下它是如何工作的,它检查您的模型,对于每个模型,它将检查您的DB中是否存在一个多元版本。因此,如果有一个名为"User“的模型,那么轮子就会期望有一个名为”User“的表。

票数 2
EN

Stack Overflow用户

发布于 2012-04-12 20:09:28

迈克尔,

故障排除模型对象函数的第一步通常是转储结果allErrors()方法。尝试在尝试保存之后添加这一行。

代码语言:javascript
复制
<cfdump var=user.allErrors() label="User Save Errors" abort />

MC

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

https://stackoverflow.com/questions/10128448

复制
相关文章

相似问题

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