【发布时间】:2014-09-18 21:18:52
【问题描述】:
我正在将大型代码库从 cake1.2 迁移到最新的 cake1.3 - 一切进展顺利,直到我遇到其中一个模型的问题以及如何解决 find('all) 正在生成 SQL 请求。
find('all') 请求在 cmets 类控制器中,请求完整的 3 条评论记录。每条评论 SQL 记录都有一个anger_id 和一个author_id 外文,下面的存根来自cmets 模型。
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 Comment.id, Comment.catch_id, Comment.angler_id, Comment.text, Comment.@98765433@4, @98765433@4, author_id,Comment。private,Angler。id,Angler。username,Angler。password,Angler。email,Angler。active, Angler.autologin_key, Angler.role, Angler.first_name, Angler.last_name, Angler.@987654355.@, Angler,@987654355. Angler。state,Angler。zip,Angler。phone,Angler。boat,favorite lure,Angler。created,Angler。ip,Angler.aoty_rank,Angler.aoty_points,Angler.aoty_events,Author.id,Author.username,username,@987654381. Author。email,Author。active,Author。autologin_key,Author。role,Author。first_name,Author。last_name,Author.address, Author.city, Author.@9876544 00@,Author.zip,Author.phone,Author.boat,Author.created,Author.@987644411@2@987644411@987644411 ,@ 987654413。aoty_points,Author 987654416 @ Comment leve join join anglers AS Angler ON(angler_id 987654423 Angler 987654424 id ) 左连接anglers AS Author ON (Comment.author_id = Author.id) 其中Comment.private = 0 ORDER BY datetimeDESC.
作者和钓鱼者都有相同的字段,但由于某些原因,“最喜欢的诱饵”字段出现了问题。非常感谢任何有关解决此问题的建议。
这是执行查找的代码和运行良好的旧代码。
// OLD CODE FINDALL
// $comments = $this->Comment->findAll(array('Comment.private' => 0), null, 'Comment.datetime DESC', $count);
// 1.3 MOD
$params = array(
'conditions' => array('Comment.private' => 0), // array
'fields' => null, // array
'order' => 'Comment.datetime DESC', // array or string
'limit' => $count, // int
// 'page' => , // int
// 'recursive' => 0 // int
);
$comments = $this->Comment->find('all', $params);
【问题讨论】:
标签: cakephp-1.3