Подскажите почему выборка срабатывает и показывает только одну запись
$select_account_id = 78,79,119
$tokens = FbToken::find()->select('id')->where(['in','id', [$select_account_id]])->andWhere(['status' => 1])->andWhere(['hidden' => 0])->all();
так только выводит
Array(
[0] => frontend\models\FbToken Object
(
[_attributes:yii\db\BaseActiveRecord:private] => Array
(
[id] => 78
)
[_oldAttributes:yii\db\BaseActiveRecord:private] => Array
(
[id] => 78
)
[_related:yii\db\BaseActiveRecord:private] => Array
(
)
[_relationsDependencies:yii\db\BaseActiveRecord:private] => Array
(
)
[_errors:yii\base\Model:private] =>
[_validators:yii\base\Model:private] =>
[_scenario:yii\base\Model:private] => default
[_events:yii\base\Component:private] => Array
(
)
[_eventWildcards:yii\base\Component:private] => Array
(
)
[_behaviors:yii\base\Component:private] => Array
(
)
)
)
но если сделать так
$tokens = FbToken::find()->select('id')->where(['in','id', [78,79,119]])->andWhere(['status' => 1])->andWhere(['hidden' => 0])->all();
получаю
Array(
[0] => frontend\models\FbToken Object
(
[_attributes:yii\db\BaseActiveRecord:private] => Array
(
[id] => 78
)
[_oldAttributes:yii\db\BaseActiveRecord:private] => Array
(
[id] => 78
)
[_related:yii\db\BaseActiveRecord:private] => Array
(
)
[_relationsDependencies:yii\db\BaseActiveRecord:private] => Array
(
)
[_errors:yii\base\Model:private] =>
[_validators:yii\base\Model:private] =>
[_scenario:yii\base\Model:private] => default
[_events:yii\base\Component:private] => Array
(
)
[_eventWildcards:yii\base\Component:private] => Array
(
)
[_behaviors:yii\base\Component:private] => Array
(
)
)
[1] => frontend\models\FbToken Object
(
[_attributes:yii\db\BaseActiveRecord:private] => Array
(
[id] => 79
)
[_oldAttributes:yii\db\BaseActiveRecord:private] => Array
(
[id] => 79
)
[_related:yii\db\BaseActiveRecord:private] => Array
(
)
[_relationsDependencies:yii\db\BaseActiveRecord:private] => Array
(
)
[_errors:yii\base\Model:private] =>
[_validators:yii\base\Model:private] =>
[_scenario:yii\base\Model:private] => default
[_events:yii\base\Component:private] => Array
(
)
[_eventWildcards:yii\base\Component:private] => Array
(
)
[_behaviors:yii\base\Component:private] => Array
(
)
)
[2] => frontend\models\FbToken Object
(
[_attributes:yii\db\BaseActiveRecord:private] => Array
(
[id] => 119
)
[_oldAttributes:yii\db\BaseActiveRecord:private] => Array
(
[id] => 119
)
[_related:yii\db\BaseActiveRecord:private] => Array
(
)
[_relationsDependencies:yii\db\BaseActiveRecord:private] => Array
(
)
[_errors:yii\base\Model:private] =>
[_validators:yii\base\Model:private] =>
[_scenario:yii\base\Model:private] => default
[_events:yii\base\Component:private] => Array
(
)
[_eventWildcards:yii\base\Component:private] => Array
(
)
[_behaviors:yii\base\Component:private] => Array
(
)
)
)
Подскажите что не правильно делаю ?
Лучшим вариантом для IN в Yii2 будет передача массива.
$select_account_id = [78,79,80];
$tokens = FbToken::find()->select('id')->where(['in','id', $select_account_id])->andWhere(['status' => 1])->andWhere(['hidden' => 0])->all();
Не уверен, упростили ли вы массив, написав $select_account_id = 78,79,119
, так как это тут неправильный синтаксис и по хорошему оно должно выдать ошибку.
Но даже если не выдаст ошибку, в вашем варианте Вы передаете $select_account_id как единый параметр.
То есть у вас формируется вот такая конструкция: ->where(['in','id', [[78,79,119]])
<- двойные скобки.
Это приведет к тому, что ваш запрос неправильно будет сформирован, так как ожидается одномерный массив, а получается двумерный (еще одна вложенность).
Если же вы и имели ввиду такой синтаксис, тогда скорее всего у вас выключены Warning, и $select_account_id = 78, а все остальное игнорируется.
В результате у вас просто формируется вот такая конструкция: ->where(['in','id', [78])
и вы получаете одну строку.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
ищу в этом куске <div class="chart chart__temperature" style="height: 77px;width: 660px"><div class="values" style="height: 77px"> этот текст height: 77px;width: 660px
почему переменная $city не передается в функцию, а $courses в where() подставляется