0

次のように定義された CakePHP のモデル クラスがあります。

class Programme extends AppModel {
    public $hasOne = array(
        'ProgrammeLikes' => array(
        'className' => 'ProgrammeLikes',
        'fields' => array('likes'));
}

データベースからモデルを取得すると、「Programme」をキーとする配列と「ProgrammeLikes」をキーとする別の配列 (「likes」値が正しく含まれています) を持つ配列として返されます。既存のコードに必要な変更を減らすために、'likes' 値を 'Programme' 配列内に配置したいと考えています。

これは可能ですか?

前もって感謝します

4

1 に答える 1

0

ここでvirtualFieldsを使用して、これを実行します。

class Programme extends AppModel {
    public $hasOne = array(
        'ProgrammeLikes' => array(
        'className' => 'ProgrammeLikes',
        'fields' => array('likes')
    );

    public $virtualFields = array(
        'likes' => 'SELECT likes FROM programme_likes AS ProgrammeLikes WHERE ProgrammeLikes.id = Programme.programme_likes_id'
    ); 
    // Where programme_likes_id is the foriegnkey for Programme model

}

注:はModelprogramme_likesのテーブル名であり、Modelの foriegnkey であると仮定したため 、要件に合った独自の方法でクエリを配置できます。ProgrammeLikesprogramme_likes_idProgramme

于 2013-10-01T05:35:53.700 に答える