cakephp 1.3属于歧义1052问题

时间:2014-09-18 21:18:52

标签: cakephp-1.3

我正在将大型代码库从cake1.2迁移到最新的cake1.3 - 所有这些都一直很顺利,直到我遇到其中一个模型的问题以及如何 find('all)正在生成SQL请求。

find('all')请求位于comments类控制器中,并完整地请求3条评论记录。每个注释SQL记录都有一个angler_id和一个author_id外部,下面的存根来自注释模型。

class Comment extends AppModel {
 var $name = 'Comment';
 var $belongsTo = array(
 Angler' => array( 'className' => 'Angler' ),
 Author' => array( 'className' => 'Angler' ),
 );
}

钓鱼者的记录在众多其他领域中都有一个名为“最喜欢的诱饵”的领域。作者和钓鱼者都提到钓鱼者记录。注释SQL记录有一个author_id和一个angler_id字段。这在1.2代码中运行得非常好,但由于某种原因,1.3生成以下SQL请求,其中“最喜欢的诱惑”字段(只有那个)是不明确的,我得到1052错误代码。请注意,没有其他钓鱼者字段被抱怨为含糊不清。

查询:SELECT CommentidCommentcatch_idCommentangler_idComment。{{ 1}},textCommentdatetimeCommentauthor_idCommentprivate。{{1} },AngleridAnglerusernameAnglerpasswordAngleremailAngleractiveAnglerautologin_keyAnglerroleAnglerfirst_name,{{ 1}}。Anglerlast_nameAngleraddressAnglercityAngler,{{1} }。stateAnglerzipAnglerphoneAnglerboatfavorite lureAnglercreatedAngleripAngleraoty_rankAngleraoty_points,{{ 1}}。Angleraoty_eventsAuthoridAuthorusernameAuthor,{{1} }。passwordAuthoremailAuthoractiveAuthorautologin_keyAuthorroleAuthorfirst_nameAuthorlast_nameAuthoraddressAuthor。{{ 1}},cityAuthorstateAuthorzipAuthorphone。{{1} },AuthorboatAuthorcreated FROM Author AS ip LEFT JOIN Author AS aoty_rank ON(Authoraoty_points = Authoraoty_events)LEFT JOIN comments AS Comment ON(anglers。{{1 }} = AnglerComment)WHERE angler_idAngler = 0 ORDER BY idanglers DESC LIMIT 3

作者和钓鱼者都有相同的领域,但出于某种原因,“最喜欢的诱惑”字段会出现问题。任何有关解决这个问题的建议都非常感谢。

以下是执行查找的代码和运行良好的旧代码。

Author

1 个答案:

答案 0 :(得分:0)

好的,所以我明白了。显然有一个DB字段,在"喜欢的诱惑"之类的单词之间有空格。是verboten - 它在cakePHP 1.2中运行良好,但1.3有问题。将其更改为" favorite_lure"修好了一切。

它甚至在http://book.cakephp.org/1.3/en/The-Manual/Basic-Principles-of-CakePHP/CakePHP-Conventions.html - &#34处这样说;带有两个或更多单词的字段名称被强调,如first_name。"

当然,CakePHP没有任何错误或警告,该字段的命名约定是问题 - GRRRRRRR。