Orm запоминает, какие поля были выбраны ранее, а когда нет. В $ result2 ниже поля не были указаны, поэтому можно ожидать, что он получит полную строку. Однако он «запоминает» то, что было извлечено ранее. Это может привести к непредсказуемым результатам в зависимости от порядка выполнения. Запрос должен быть без гражданства.
$result1 = \Model_X::query()->select('id')->get();
$result2 = \Model_X::find(1);
Ожидается: все поля из Model_X должны быть включены в $ result2. Acutal: в $ result2
включается только идентификатор. Тогда можно было бы ожидать, что я получу все поля, которые мне нужны, чтобы явно перечислить их все во втором операторе select. Тем не менее, даже это, кажется, не работает, и я все еще только возвращаю идентификатор.
\Model_X::query()->select('col2')->where('id', 1)->get();
Я здесь что-то делаю глупо?