Q:

Вызов непонятной ошибки у ActiveRecord (Yii2)

есть код: 
$oldGeneralTest = GeneralTestHistory::findOne((int)$value);
$newGeneralTest = new GeneralTestHistory();
$newGeneralTest->test_id = $oldGeneralTest->test_id;

Но вызывается ошибка: 
Trying to get property 'test_id' of non-object
с ссылкой на последнюю строчку.  
Если изменить на: 
$oldGeneralTest = GeneralTestHistory::findOne((int)$value);
$newGeneralTest = new GeneralTestHistory();
$test_id = $oldGeneralTest->test_id;
$newGeneralTest->test_id = $oldGeneralTest->test_id;

То выскакивает такая же ошибка, при этом ссылается на предпоследнюю.  
При этом, если вывести через var_dump(): 
$oldGeneralTest = GeneralTestHistory::findOne((int)$value);
$newGeneralTest = new GeneralTestHistory();
$test_id = $oldGeneralTest->test_id;
return var_dump($oldGeneralTest->test_id);
$newGeneralTest->test_id = $oldGeneralTest->test_id;

Или
$oldGeneralTest = GeneralTestHistory::findOne((int)$value);
$newGeneralTest = new GeneralTestHistory();
$test_id = $oldGeneralTest->test_id;
return var_dump($oldGeneralTest->test_id);
$newGeneralTest->test_id = $oldGeneralTest->test_id;

То выводит нужное значение и без ошибки.  
$value - Это переменная цикла foreach.  Если заменить на число самому, то все работает как нужно.  
Вопрос.  В чем магия?  
Заранее спасибо за ответ.  

A:

Очевидно что в какой то момент в переменной $oldGeneralTest у Вас оказывается null - поэтому и возникает ошибка.  Введите проверку перед последней строкой на пустоту внутри этой переменной

