Привет, я работаю с другом в проекте Symfony 2. Он работает на компьютере под управлением Windows, и я нахожусь на своем Mac. Мы настраиваем проект и создаем модель / сущности базы данных (код сначала) на своем компьютере. хотел бы начать работать над этим, так что мы сделали SQL dumb для моего localhost.Я отредактировал параметр.yml для соответствия моим настройкам. Проект может подключиться к серверу. Но когда я пытаюсь открыть страницу, на которой используется база данных я получаю эту ошибку:
Исключение произошло при выполнении 'SELECT t0.id AS id1, t0.name AS name2, t0.bigimage AS bigimage3, t0.smallimage AS smallimage4, t0.info AS info5, t0.city_id AS city_id6 FROM District t0':
SQLSTATE [42S02]: базовая таблица или представление не найдены: 1146 Таблица «socialgeogroep6.District» не существует 500 Внутренняя ошибка сервера – DBALException 1 связано Исключение: PDOException »
- Инструмент для генерации диаграммы классов UML из аннотаций Doctrine
- Как получить чужой репозиторий внутри моего репозитория в Doctrine2 / Symfony2?
- FOSUserBundle Override Roles - свойства «роли» в «Acme \ DemoBundle \ Entity \ User» уже были объявлены, но должны быть объявлены только один раз
- Получение связанных записей в Doctrine 2
- Можно ли использовать результат функции SQL в качестве поля в Doctrine?
- Доктрина Symfony Cache / orm / Proxies не открыла поток /Proxy/AbstractProxyFactory.php в строке 209
Чтобы быть понятным, страница работает нормально на своем компьютере; он получает данные так, как должно быть.
В чем проблема? Я снова и снова просматривал свой PHPmyAdmin, и в базе данных есть все поля и данные …
(экран: http://gyazo.com/4a0e5f1ee6b1e29d2d277df5fc0d8aac ) Я действительно не могу представить, в чем проблема.
Надеюсь, кто-то может нам помочь!
Вероятно, это дело. У вас есть таблица district
в вашей базе данных, но доктрина просит District
стол.
Вы должны настроить доктрину для использования имени таблицы нижнего регистра. Обратитесь к документации по доктринам http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/basic-mapping.html#persistent-classes, чтобы узнать, как это сделать.
У меня просто была такая же проблема, потому что я пишу код на окнах, и мне нужно развернуть на linux.
Решение состоит в том, чтобы добавить в config.yml строку:
doctrine: orm: naming_strategy: doctrine.orm.naming_strategy.underscore
Проблема с именем таблицы
socialgeogroep6.District
Это должно быть socialgeogroep6.district
в соответствии с скриншотом. Проверьте аннотацию Entity.
Предупреждение: Прежде чем читать это решение. Это строго решение для тех, кто пытается создать структуру.
Я думаю, что, поскольку вы только начинаете опробовать, что вы можете сделать, это сбросить базу данных, а затем начать все заново.
- mysql -uroot -proot - show databases; - drop database <dbname>;
Затем заново создайте таблицы.
- app/console doctrine:database:create - app/console doctrine:schema:create
Предупреждение: это может быть очень БЕСПЛАТНАЯ идея сделать это в производственной среде, если вы уже создали свои контроллеры, и данные уже заполнены.
Эта работа для меня в symfony 2.7. Просто введите config.yml:
doctrine: # ... orm: # ... entity_managers: default: naming_strategy: doctrine.orm.naming_strategy.underscore
Если вы используете Orm, вы можете настроить его таким образом
District.orm.yml
Project\Bundle\DuterteBundle\Entity\Vp: type: entity table: district//note the lowercase repositoryClass: Project\Bundle\DuterteBundle\Repository\VpRepository