首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >元素标题在BlogPost coldfusion中未定义

元素标题在BlogPost coldfusion中未定义
EN

Stack Overflow用户
提问于 2015-12-03 05:51:38
回答 1查看 199关注 0票数 0

我正在通过learncfinaweek.com学习Coldfusion,并希望帮助克服这个困难:

博客中未定义元素标题C:/ColdFusion11/cfusion/wwwroot/learncfinaweek/chapter1solution/admin/content/blog/listblogpost.cfm:第34行出现错误

我认为“博客文章中未定义的”指的是BlogPost.cfc,下面的底部页面。对吗?

第一个是listblogpost.cfm

代码语言:javascript
复制
<cfimport taglib="../../customTags" prefix="ct" />
<ct:securityCheck redirectPage="#cgi.script_name#"/>

    <cfset adminPath =    createObject('learncfinaweek.chapter1solution.admin.cfc.system').getBasePath(    cgi.script_name) />

<!--- Pull Blog Posts --->
<cfset blogPosts=EntityLoad('BlogPost') />

<cfoutput>
    <ct:layout section="blog">
        <ct:navigation section="blog" active="post"/>

        <div class="span10">
            <h2>Blog</h2>
                <form class="navbar-form pull-right">
                    <a class="btn btn-primary" href="<cfoutput>#adminPath#</cfoutput>/content/blog/editblogpost.cfm">
                        <i class="icon-plus icon-white"></i>
                        New Blog Post
                    </a>
                </form>
            <table class="table table-hover">
                <thead>
                    <tr>
                        <th>Title</th>
                        <th>Publish Date</th>
                        <th>Actions</th>
                    </tr>
                </thead>
                <tbody>
                    <cfloop array="#blogPosts#" index="blogPost">
                        <tr>
                            <td>
                                <!--- Title --->
                                #blogPost.title#
                            </td>
                            <td>
                                <!--- Date Posted --->
                                #dateFormat(blogPost.datePosted,"mm/dd/yyyy")#
                            </td>
                            <td>
                            <!--- Edit Post --->
                                <a href="#adminPath#/content/blog/editblogpost.cfm?id=#blogPost.id#"><i class="icon-edit"></i></a>
                            </td>
                        </tr>
                    </cfloop>
                </tbody>
            </table>
        </div>
        </ct:layout>
</cfoutput>

下面是editblogpost.cfm页面:

代码语言:javascript
复制
<cfimport taglib="../../customTags" prefix="ct" />
<ct:securityCheck redirectPage="#cgi.script_name#"/>

<cfparam name="url.id" default="0" />
<cfparam name="form.submitted" default="0" />
<cfparam name="form.id" default="0" />
<cfparam name="form.title" default="" />
<cfparam name="form.summary" default="" />
<cfparam name="form.body" default="" />
<cfparam name="form.datePosted" default="" />
<cfparam name="form.categories" default="" />

<cfset errorBean =   createObject('learncfinaweek.chapter1solution.admin.cfc.errorBean').init() />

<cfif form.submitted>

    <!--- check if data is valid--->
    <cfif !len(trim(form.title))>
        <cfset errorBean.addError('Title is required','title') />
    </cfif>

    <cfif !len(trim(form.summary))>
        <cfset errorBean.addError('A summary is required','startDate') />
    </cfif>

    <cfif !len(trim(form.body))>
        <cfset errorBean.addError('You need to provide a body','details') />
    </cfif>

    <cfif !len(trim(form.datePosted))>
        <cfset errorBean.addError('You need to provide a release date','details') />
    </cfif>

    <!--- Only process if there are no errors --->
    <cfif !errorBean.hasErrors()>
        <cfif val(form.id)>
            <!--- Edit Entity  --->
            <cfset blogpost=EntityLoad('BlogPost',form.id,true) />
            <cfset blogPost.title = form.title />
            <cfset blogPost.summary = form.summary />
            <cfset blogPost.body = form.body />
            <cfset blogPost.datePosted = form.datePosted />
            <cfset blogPost.modifiedDateTime = now() />
            <cfloop array="#blogPost.getCategories()#" index="category">
                    <cfset entityDelete(category) />
                </cfloop>
        <cfelse>
            <!--- Create Entity --->
            <cfset blogPost=EntityNew('BlogPost') />
            <cfset blogPost.title = form.title />
            <cfset blogPost.summary = form.summary />
            <cfset blogPost.body = form.body />
            <cfset blogPost.datePosted = form.datePosted />
            <cfset blogPost.createdDateTime = now() />
        </cfif>
        <cfset entitySave(blogPost) />

    <!--- Add Category to Entity --->
        <cfloop list="#form.categories#" index="categoryID">
            <cfset blogPostCategory = EntityNew('blogPostCategory') />
            <cfset blogCategory = EntityLoad('blogCategory',categoryID,true) />
            <cfset blogPostCategory.blogCategory = blogCategory />
            <cfset blogPostCategory.blogPost = blogPost />
            <cfset entitySave(blogPostCategory) />
        </cfloop>

        <cfset ormFlush() />

        <cflocation url="listblogpost.cfm?message=#urlencodedformat('Blog Post Saved')#" addtoken="false" />
    </cfif>
</cfif>

<cfif val(url.id)>
    <!--- Get Entity Data --->
    <cfset blogPost = EntityLoad('BlogPost',url.id,true) />
    <cfset form.id = blogPost.id />
    <cfset form.title = blogPost.title />
    <cfset form.summary = blogPost.summary />
    <cfset form.body = blogPost.body />
    <cfset form.datePosted = blogPost.datePosted />
    <cfset form.categories = blogPost.categoryids />
</cfif>

<cfset categories = entityLoad('BlogCategory' ) />

<cfoutput>
    <ct:layout section="blog">
        <ct:navigation section="blog" active="post"/>

        <div class="span10">
            <cfif val(url.id)>
                <h2>Edit Blog Post</h2>
            <cfelse>
                <h2>Add Blog Post</h2>
            </cfif>

            <cfif errorBean.hasErrors()>
                <div class="alert alert-error">
                    <strong>Error</strong><br />
                    The following errors occured:
                    <ul>
                        <cfloop array="#errorBean.getErrors()#" index="error">
                            <li>#error.message#</li>
                        </cfloop>
                    </ul>
                </div>
            </cfif>

            <form class="form-horizontal" action="#cgi.script_name#" method="post">
                <div class="control-group">
                    <label class="control-label" for="title">Title</label>
                    <div class="controls">
                        <input type="text" id="title" name="title" va    lue="#form.title#">
                    </div>
                </div>
                <div class="control-group">
                    <label class="control-label" for="title">Summary</label>
                    <div class="controls">
                        <textarea rows="6" id="summary" name="summary"     class="input-xlarge">#form.summary#</textarea>
                    </div>
                </div>
                <div class="control-group">
                    <label class="control-label" for="title">Body</label>
                    <div class="controls">
                        <textarea rows="3" id="body" name="body" class="wysiwyg">#form.body#</textarea>
                    </div>
                </div>

                <div class="control-group">
                    <label class="control-label" for="details">Publish Date</label>
                    <div class="controls">
                        <input type="text" id="datePosted"  name="datePosted" class="datepicker"  value="#dateFormat(form.datePosted,'mm/dd/yyyy')#">
                    </div>
                </div>

                <div class="control-group">
                <label class="control-label"  for="details">Categories</label>
                    <div class="controls">
                            <label class="checkbox">
                            <cfloop array="#categories#" index="category">
                                <input type="checkbox" name="Categories" value="#category.id#"
                                    <cfif listfind(form.categories,category.id)>checked</cfif>>#category.name#<br />
                            </cfloop>
                        </label>
                    </div>
                </div>
                <div class="control-group">
                    <div class="controls">
                        <button type="submit" class="btn btn-primary">Save</button>
                    </div>
                </div>
                <input type="hidden" name="submitted" value="1" />
                <input type="hidden" name="id" value="#url.id#" />
            </form>
        </div>
    </ct:layout>
</cfoutput>

blogPost.cfc页面:

代码语言:javascript
复制
component persistent="true" {
    Property name="id" column="blogpostid" fieldtype="id" generator="increment";
    Property name="title" ormtype="text";
    Property name="summary" ormtype="text";
    Property name="body" ormtype="text";
    Property name="datePosted" ormtype="timestamp";
    Property name="createdDateTime" ormtype="timestamp";
    Property name="modifiedDateTime" ormtype="timestamp";
    Property name="deleted" ormtype="boolean";

    Property name="comments" singularname="comment" fieldtype="one-to-many" cfc="blogComment" fkcolumn="blogpostid" cascade="all";
    Property name="categories" fieldtype="one-to-many" cfc="blogPostCategory" fkcolumn="blogpostid";

    public string function getCategoryIDs(){
        var categoryList = '';
        if(hasCategories()){
            for(var categoryPost in getCategories()){
                categoryList = listAppend(categoryList, categoryPost.blogCategory.id);
            }
        }

        return categoryList;
    }
        public string function getCategoryNames(){
        var categoryList = '';
        if(hasCategories()){
            for(var categoryPost in getCategories()){
                categoryList = listAppend(categoryList, categoryPost.blogCategory.name,', ');
            }
        }
        return categoryList;
    }
}
EN

回答 1

Stack Overflow用户

发布于 2015-12-03 07:11:35

当出现错误时,X is undefined in Y会给出一个特定的行号,跳转到该文件中的行号,看看那里有什么。

该文件包含的错误是Element TITLE is undefined in BLOGPOST.

  • Line 34:#blogPost.title#

  • So it
  1. title in blogpost。你是否在数组<cfloop array="#blogPosts#" index="blogPost">上定义了blogpost
  2. You're循环,所以你已经定义了blogPost。下一个问题是,blogPost是一个结构还是一个对象?
  3. 您可以很容易地在该循环中添加<cfdump var="#blogPost#">,以查看是否有任何数组元素缺少title键。
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34053758

复制
相关文章

相似问题

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