0

私はこれらのテーブルとそれらの間の関係を持っています:

  • 1 つのプロジェクトには多数の構成コンテキストがあります 1 つの課題タイプには多数の構成コンテキストがあります
  • オプション構成には多くの構成コンテキストがあります
  • オプション構成 (中間テーブルは存在しません)

私の目標は、このクエリのような情報を取得することです。

SELECT IT.id, IT.pname
FROM configurationcontext               CC
LEFT OUTER JOIN optionconfiguration     OC ON OC.fieldconfig = CC.fieldconfigscheme
LEFT OUTER JOIN issuetype               IT ON IT.id = OC.optionid
WHERE CC.project = 10000

私の疑問: - この情報を返す関数を作成するために使用するコントローラーはどれですか? - この情報を入手するにはどうすればよいですか?

ありがとう :)

4

1 に答える 1

0

モデル名が正しいと仮定すると、これでうまくいくはずです:

$this->ConfigurationContext->find('all', array(
    'joins' => array(
        array(
            'table' => 'optionconfiguration',
            'alias' => 'OptionConfiguration',
            'type' => 'LEFT OUTER JOIN',
            'conditions' => array(
                'OptionConfiguration.fieldconfig = ConfigurationContext.fieldconfigscheme'
            )
        ),
        array(
            'table' => 'issuetype',
            'alias' => 'IssueType',
            'type' => 'LEFT OUTER JOIN',
            'conditions' => array(
                'IssueType.id = OptionConfiguration.optionid'
            )
        )
    ),
    'conditions' => array(
        'ConfigurationContext.project' => 10000
    ),
    'fields' => array(
        'IssueType.id',
        'IssueType.pname'
    )
));

タイプ「LEFT OUTER JOIN」は試していませんが、なぜ機能しないのかわかりません。可能であれば、結合の使用を避けるために、containable の使用を検討してください。

于 2013-05-15T19:44:43.027 に答える