Yii2使用数组获取数据库作为' IN'

时间:2017-08-18 16:23:40

标签: database yii2

我想在视图中显示一些数据,但是出现了错误

这是我的代码

控制器:

首先,我想在$row

中添加一些数字
$row = Table1::find('number')->where(['username' => Yii::$app->user->identity->username])->asArray();

然后,我想在Table2中找到一些数据$row作为IN

$show = Table2::find()->where(['id_user' => $row])->all();

并且,我渲染view

return $this->render('view', ['show' => $show]);

查看:

我使用foreach来显示$show

<?php
  foreach($show as $s):
?>

   <?= $s->data ?>

<?php
  endforeach;
?>

但它显示错误:

SQLSTATE[21000]: Cardinality violation: 1241 Operand should contain 1 column(s)

任何人都可以帮助我?

由于

1 个答案:

答案 0 :(得分:0)

您获得的错误是由此代码位引起的:Table1::find('number')
传递给find()的参数需要是一个条件(表达式,字符串或数组格式),就像where()

一样

我从你的问题中不清楚你在使用那个特定的查询做什么,
也许你需要这样的东西:

Table1::find()->select(['number'])->where( ... );