默认情况下,传递给的第二个参数的值
Queryexpression::addCase()将被视为转换为
文字值 ,而不是
标识符
。如果需要后者,则应使用表达式
Identifierexpression。
use CakeDatabaseexpressionIdentifierexpression;// ...$team_id = $query->newExpr()->addCase( [ $query->newExpr()->eq('Games.status', 'home_default') ], [ new Identifierexpression('Games.home_team_id'), new Identifierexpression('Games.away_team_id') ]);在这种情况下,也请忽略第三个参数,您不希望这些值是字符串文字(对于表达式,无论如何都将忽略类型)。



