$model->adres
прежде чем пытаться с ней что-то делать. Так как связь возвращает или объект или null. У Вас вернула null. return $this->city=$this->hasOne
$this->adres
уже имеет связь, зачем Вы его еще и в $this->city
засовываете? Выкидываем точно, но ошибка не из=за этого.$model->adres
будет null
и соответственно будет ошибка, так что как-то так:if($address = $model->adres)
echo $form->field($address, 'city')
если чуть-чуть подумаешь
У вас если валидация не пройдена вообще ничего не происходит, а должен рендер формы идти