わかりました、これは今私を本当に混乱させています。これはしばらく前に機能していたのですが、何かが変更されたため、計算されたプロパティが機能しなくなったからです。
「リンク」モデルで findAll() を実行する「ページ」コントローラーがあります。これは、計算されたプロパティ (以前は機能していた) を含めようとする場合を除いて、うまく機能します。
page.cfc (コントローラー)
<cfset linkListHottest = model("link").findAll(
select="
links.linkID,
linkTitle,
linkPoints,
linkAuthority,
linkCreated,
<!--- Here I specifiy the 'property' names from the model --->
linkUpVoteCount,
linkDownVoteCount,
linkCommentCount,
users.userID,
userName,
categories.categoryID,
categoryTitle,
categoryToken",
include="user,category",
order="linkPoints DESC",
handle="linkListHottestPaging",
page=params.page,
perPage=5
) />
link.cfc (モデル)
<cffunction name="init">
<cfset table("links") />
<!--- These three lines aren't populating my queries on the link model --->
<cfset property(name="linkUpVoteCount", sql="(SELECT COUNT(*) FROM votes WHERE votes.linkID = links.linkID AND voteType = 1)") />
<cfset property(name="linkDownVoteCount", sql="(SELECT COUNT(*) FROM votes WHERE votes.linkID = links.linkID AND voteType = 0)") />
<cfset property(name="linkCommentCount", sql="(SELECT COUNT(*) FROM comments WHERE comments.linkID = links.linkID AND commentRemoved = 0)") />
<cfset belongsTo(name="user", modelName="user", joinType="outer", foreignKey="userID") />
<cfset belongsTo(name="category", modelName="category", joinType="outer", foreignKey="categoryID") />
<cfset hasMany(name="vote", modelName="vote", joinType="outer", foreignKey="linkID") />
<cfset hasMany(name="comment", modelName="comment", joinType="outer", foreignKey="linkID") />
<cfset validatesPresenceOf(property='linkTitle') />
<cfset validatesPresenceOf(property='linkURL') />
<cfset validate(property='linkURL', method='isValidURL') />
<cfset validate(property='linkURL', method="validateUniqueUrl", when="onCreate") />
</cffunction>
home.cfm (ビュー)
#linkListHottest.linkUpVoteCount#
次のエラーが表示されます。
「フィールド リスト」の不明な列「linkUpVoteCount」
さて、findAll() の SELECT から列名を削除して、それが解決するかどうか見てみましょう。いいえ:
列 [LINKUPVOTECOUNT] がクエリに見つかりません。列は [linkID,linkTitle,linkPoints,linkAuthority,linkCreated,userID,userName,categoryID,categoryTitle,categoryToken] です
つまり、キャッチ 22 の状況のようです。私の「リンク」モデルは、そこに設定されているプロパティを完全に無視しているようです。
どこが間違っているかについてのフィードバックをいただければ幸いです (間違いなく私です!)。
どうもありがとう、マイケル。