Cakephp3のQueryでCASE文を使う

やりたいこと

SQLのCASE文をCakephp3で使いたい。

SELECT

    CASE WHEN name IS NULL THEN name

    ELSE name_kana

    END `user_name`

FROM

    users;

Cakephp3やり方

use Cake\Database\Expression\IdentifierExpression;

$userNameCase = $query->newExpr()

    ->addCase(

        [$query->newExpr()->add(['Users.name IS NULL'])],

        [new IdentifierExpression('Users.name'), new IdentifierExpression('Users.name_kana')],

        ['string', 'string']

);




$query->select([

    'user_name' => $userNameCase

]);