2013-12-13 2 views
0

Мой коллега сделал настройку на db прошлой ночью, не сказав мне. Полевые книги.страницы стали books.pages_short & books.pages_long. Я понял, что произошло, и добавил, чтобы изменить/добавить поля вручную в Entity/Books, Resources/config/doctrine/Books.orm.yml и Form/BooksTypes + любые ветки, относящиеся к этому конкретному полю. Но при попытке отобразить/индексную страницу книги, которые я до сих пор получаю:Устранение неисправностей Symfony2 - Отсутствующее свойство объекта

Property ABC\LibraryBundle\Entity\Books::$pages does not exist 
500 Internal Server Error - ReflectionException 

Обратите внимание, что в Entity/Books.php Я изменил свойство книги на 2 отдельных из них pages_short & pages_long (включая любые ссылки в аннотации) а также в геттерах и сеттерах.

Я также очищаю: кэшировал в обоих dev & prod (хотя я только в dev), но я все еще получаю сообщение об ошибке, которое ссылается на переменную $ pages (с пробелом после), которая больше не существует в коде база. Новые переменные - все $ pages_ [short | long]

Изменения в базе данных произойдут, и вы должны быть готовы к ним. Я считаю, что я делаю изменения в каждом месте, где существует ссылка на поле, поэтому пытаюсь выяснить, как устранить эту ошибку.

+0

«изменения БД будет происходить, и вы должны быть готовы к ним.» - это не тот путь, который должен быть подготовлен для их - проверка миграции доктрины. ;) Не содержит ли ошибка номер файла и номера строки? Можете ли вы использовать XDebug? – Jessica

+0

Правильно, я хочу сказать, это мой первый раз с Доктриной, и мне нужно убедиться, что я знаю, как справляться с этими изменениями :). Верхний элемент в трассировке стека - это доктрина \ common \ lib \ Doctrine \ Common \ Persistence \ Mapping \ RuntimeReflectionService.php в строке 79 ... и она переходит к вызову функции BooksController indexAction() ... Я могу добавить всю трассировку стека w/line #s (11 элементов) в indexAction, если это поможет обеспечить ясность. Thx – shotdsherrif

+0

Я бы предложил использовать xdebug для перемещения стека и найти, где эта переменная входит в игру. – Jessica

ответ

0

Бьюсь об заклад, где-то есть прослушиватель, который все еще использует поле $ pages вашего объекта Books.

0

Наверняка вы обновили вашу схему, попробуйте удалить кэш/лезвием & кэш/Dev

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