cake-logo

CakePHPでVirtualFieldsを使う

virtualfieldsは任意のSQL表現をつくり、モデルのフィールドとして割り当てることができます。作成したフィールドは保存することができません。find関数等で他の引数と渡すとエラーになりますので注意が必要です。その場合は渡す前に空にもどしましょう。その他データベースにバーチャルフィールドと同じ名前があるとエラーを引き起こします。

バーチャルフィールドの作り方
モデルAにバーチャルフィールドを作成します。

1:モデルAのバーチャルフィールドを追加します。

$this->virtualFields = array(
  ‘rank’ => ‘sum(User.rate)’,
  );

2:フィールドに追加します。

  $fields = array(
   ’conditions’ => array(‘User.agecheck’ => 1),
‘fields’ => array(
‘User.id’,
‘User.rate’
‘User.rank’
)
);

$res = $this->ModelA->find(‘all’, $fields);

ザックリかきすぎてしまった。
また今度書き直そう・・・ではっ!


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です