如何将 YII2 查询 "where" 条件从数组转换为字符串
how to convert YII2 query "where" conditions from array to string
我有一组条件 where()
方法,可以成功添加到查询构建器:
$condition = [
'AND',
['archived' => 0],
['broken' => 0],
['gender' => 1],
[
'OR',
['visible' => 1],
['status' => 1],
],
];
但在某些地方我需要将这个数组转换为字符串
(`archived` = 0) AND (`broken`= 0) AND (`gender` = 1) AND (`visible` = 1 OR `status` = 1)
然后将其放入 select()
方法,如原始 SQL 语句
SUM(IF((`archived` = 0) AND (`broken`= 0) AND (`gender` = 1) AND (`visible` = 1 OR `status` = 1)))
您需要使用 buildCondition()
和 将参数传递给主查询:
$sql = Yii::$app->db->queryBuilder->buildCondition($condition, $params);
$query
->select([
'myField' => "SUM(IF($sql, 1, 0))"
])
->addParams($params);
我有一组条件 where()
方法,可以成功添加到查询构建器:
$condition = [
'AND',
['archived' => 0],
['broken' => 0],
['gender' => 1],
[
'OR',
['visible' => 1],
['status' => 1],
],
];
但在某些地方我需要将这个数组转换为字符串
(`archived` = 0) AND (`broken`= 0) AND (`gender` = 1) AND (`visible` = 1 OR `status` = 1)
然后将其放入 select()
方法,如原始 SQL 语句
SUM(IF((`archived` = 0) AND (`broken`= 0) AND (`gender` = 1) AND (`visible` = 1 OR `status` = 1)))
您需要使用 buildCondition()
和 将参数传递给主查询:
$sql = Yii::$app->db->queryBuilder->buildCondition($condition, $params);
$query
->select([
'myField' => "SUM(IF($sql, 1, 0))"
])
->addParams($params);