Yii2 findBySql:如何指定$params?

Yii2 findBySql:如何指定$params?,yii2,Yii2,Yi2提供ActiveRecord::findBySql für原始SQL查询: 因为文档中没有提示:如何指定$params 更新 没有任何关于参数的文档传递给findBySql()方法的原因是该方法返回ActiveQuery的实例,如果您在yii\db\ActiveRecord.php中看到此方法的最后一行,它将通过$query->params(/params)设置$params,表示定义as的yii\db\ActiveQuery函数params($params) $params按参数索引的

Yi2提供ActiveRecord::findBySql für原始SQL查询:


因为文档中没有提示:如何指定
$params

更新

没有任何关于参数的文档传递给
findBySql()
方法的原因是该方法返回
ActiveQuery
的实例,如果您在
yii\db\ActiveRecord.php
中看到此方法的最后一行,它将通过
$query->params(/params)
设置
$params
,表示定义as的
yii\db\ActiveQuery
函数
params($params)

$params
按参数索引的查询参数值列表 占位符。例如,
[':name'=>“Dan',':age'=>31]


我想如果你有一个名为product的表,你应该试试下面的方法

+----+-----------------+------------+--------+
| 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 |
+----+-----------------+------------+--------+
使用以下代码,您可以选择使用params删除的所有产品

$q = Product::findBySql(
    "SELECT * FROM product where is_deleted=:deleted",
    [':deleted' => 1]
)->all();

希望这有助于更新

没有任何关于参数的文档传递给
findBySql()
方法的原因是该方法返回
ActiveQuery
的实例,如果您在
yii\db\ActiveRecord.php
中看到此方法的最后一行,它将通过
$query->params(/params)
设置
$params
,表示定义as的
yii\db\ActiveQuery
函数
params($params)

$params
按参数索引的查询参数值列表 占位符。例如,
[':name'=>“Dan',':age'=>31]


我想如果你有一个名为product的表,你应该试试下面的方法

+----+-----------------+------------+--------+
| 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 |
+----+-----------------+------------+--------+
使用以下代码,您可以选择使用params删除的所有产品

$q = Product::findBySql(
    "SELECT * FROM product where is_deleted=:deleted",
    [':deleted' => 1]
)->all();
希望这有助于我们查看答案中的更新部分。希望能有所帮助。@WeSee查看答案中的更新部分。希望能有帮助。