Есть запрос
$query = Country::find();
$SubQuery = $query->select(['id'])->from('partner')->where(['phone' => 9301111111])->createCommand()->rawSql;
echo '<pre>'; var_dump($SubQuery); echo '</pre>';
В результате в переменной $SubQuery находится правильный ответ, т.е. запрос:
string(51) "SELECT `id` FROM `partner` WHERE `phone`=9301111111"
Если выполнить этот запрос в БД получим результат - одну строку id=1
Теперь поставим ->one() что бы он отдавал результат, а не показывал сырой запрос:
$SubQuery = $query->select(['id'])->from('partner')->where(['phone' => 9301111111])->one();
Теперь var_dump($SubQuery) показывает нам:
object(app\models\Country)#96 (8) {
["_attributes":"yii\db\BaseActiveRecord":private]=>
array(0) {
}
["_oldAttributes":"yii\db\BaseActiveRecord":private]=>
array(0) {
}
["_related":"yii\db\BaseActiveRecord":private]=>
array(0) {
}
["_errors":"yii\base\Model":private]=>
NULL
["_validators":"yii\base\Model":private]=>
NULL
["_scenario":"yii\base\Model":private]=>
string(7) "default"
["_events":"yii\base\Component":private]=>
array(0) {
}
["_behaviors":"yii\base\Component":private]=>
array(0) {
}
}
При внимательном рассмотрении видно что ни один элемента объекта не содержит нужное значение в виде единицы. Почему так, в чём ошибка?