2015-07-30 2 views
-1

Вот как я пытаюсь получить название квартиры из базы данных, но я всегда получаю ошибку. Это, как я пытаюсь получить имена квартирArrayObject :: getIterator error

$userapt = $user->getApartments()->getIterator(); 

while ($userapt->valid()) { 
    echo ($userapt->key() . ' => ' . $userapt->current()) . "\n"; 

    $userapt->next(); 
} 

$useraptName = $user->getApartment()->getIterator(); 

while ($useraptName->valid()) { 
    ($useraptName->key() . ' => ' . var_dump($useraptName->current()) . "\n"); 
    $useraptName->next(); 
} 

Запуск этого, я получаю следующее сообщение об ошибке:

Catchable Fatal Error: Object of class MyBundle\Entity\UserApartment could not be converted to string 500 Internal Server Error - ContextErrorException

Как можно зафиксировать эту ошибку?
Заранее благодарен!

ответ

0

Вы пытаетесь echo объект,

echo ($userapt->key() . ' => ' . $userapt->current()) . "\n";

вы можете решить эту проблему путем реализации метода public function __toString() {} в UserApartament классе. Таким образом, когда вы попытаетесь выполнить echo $user->current(), он будет использовать метод __toString(), чтобы показать строковое значение вашего объекта.

+0

Почему бы не решить корень проблемы - и просто не попробовать «эхо» объекта? Это странно. – zerkms

+0

@zerkms Я не знаю настоящих потребностей, но каким-то образом вы правы, обычно вам не нужно эхо объектов ... –

+0

Для любых нужд это странно: как вы создаете контекстно-зависимые. У вас просто не может быть единой реализации, которая подходит для всех костюмов. – zerkms

Смежные вопросы