Yii2 findBySql:如何指定$ params?

时间:2018-12-16 12:21:47

标签: yii2

Yii2提供ActiveRecord :: findBySql进行原始SQL查询:

public static yii\db\ActiveQuery findBySql ( $sql, $params = [] )

由于该文档中没有任何提示:如何指定$params

1 个答案:

答案 0 :(得分:1)

更新

之所以没有关于传递给findBySql()方法的参数的文档,是因为该方法返回了ActiveQuery的实例,并且如果您在{{1 }}通过yii\db\ActiveRecord.php设置$params,表示将$params定义为

$query->params($params)函数yii\db\ActiveQuery
  

params($params)由参数索引的查询参数值列表   占位符。例如,$params


如果让我们说您有一个名称为product的表,我想您应该尝试以下方式

[':name' => 'Dan', ':age' => 31]

使用以下代码,您可以选择使用params删除的所有产品

+----+-----------------+------------+--------+
| id | name            | is_deleted | price  |
+----+-----------------+------------+--------+
|  1 | shugal          |          1 |  65.00 |
|  2 | spoon           |          1 |  55.00 |
|  4 | kettle          |          1 |  15.00 |
|  5 | spoon           |          0 |  15.00 |
|  6 | plates          |          0 | 105.00 |
|  7 | dishes          |          0 |  15.00 |
|  8 | forks           |          0 |  15.00 |
| 10 | pressure cooker |          0 | 203.00 |
| 16 | shugal          |          1 |  65.00 |
| 17 | something       |          0 |  25.00 |
| 25 | multi product   |          0 |   0.00 |
| 66 | pans            |          0 |  15.00 |
+----+-----------------+------------+--------+

希望这会有所帮助