将SQL转换为cakephp ORM

时间:2012-07-16 01:02:40

标签: php sql cakephp orm

所以我有这个查询,我试图转换为蛋糕ORM,我不知道如何去做。

我有一个用户表和一个单词表。用户有很多单词(这就是关系)。我想写一个查询,它将为我提供在系统中添加了最多单词的用户。这是我写的当前查询但我无法将其转换为cakephp ORM语法,任何想法?

SELECT 
    users.username, 
    COUNT(word) AS n 
FROM 
    users AS users 
        INNER JOIN words AS words 
            ON users.userid=words.userid 
GROUP BY 
    users.username 
ORDER BY 
    n DESC 
LIMIT 3

1 个答案:

答案 0 :(得分:3)

编写查询的方法有很多种: - 在控制器中,您可以写为 -

 $options = array(
             'fields' => array(
                  'User.name',
                  'COUNT(Word.id) as word_count',
                 ),
          'group'  => 'Word.user_id',
          'order'  => 'word_count DESC',
        );           

$users = $this->User->Word->find('first', $options);
debug($users);

在用户模型中,你必须写:

public $hasMany = 'Word';

在Word模型中,你必须写:

public $belongsTo = 'User';