0

例えばCakePHPでSQLでCASE文を使いたい時

cakeはver.2.3.9で動作確認済み。


 

$this->ActivityLog->find('all', array(
'fields' => array(
'ActivityLog.id',
'((CASE User.user_type WHEN 'admin' THEN concat_ws(' ',Admin.first_name,Admin.last_name) END)) AS UserName'
),
'joins' => array(
'LEFT JOIN users as User ON ActivityLog.user_id = User.id'
'LEFT JOIN admins as Admin on User.id = Admin.user_id'
),
);

 

結局他の解決方法を使用したので、今回は使わず。

0

【使い方】Migrations Plugin for CakePHP

Migrationについて。
ちょっと記事古いけど一番わかり易い気がする
Migrationsの実践的運用(CakePHP)

まずはインストール

% cd /path/to/CAKE_ROOT
% git submodule add https://github.com/CakeDC/migrations.git app/Plugin/Migrations
% git submodule update --init

Config/bootstrap.phpに以下を追加

CakePlugin::load('Migrations');

ヘルプ

% cake Migrations.migration help

使い方

初回はこのコマンドを【重要】

% cake Migrations.migration generate -f
% cake schema generate -f

スキーマ変更時

% cake Migrations.migration generate -f

反映

% cake Migrations.migration run all