С помощью symfony 1.4 и doctrine вы можете создавать страницы / модули внешнего интерфейса с помощью этой команды в каталоге вашего проекта: php symfony doctrine: generate-module --with-show --non-verbose-templates имя_файла tablename имя_класса
Это прекрасно работает с реальными таблицами, однако, когда я пытаюсь выполнить эту команду поверх представления БД MySQL вместо таблицы БД MySQL, я получаю эту ошибку: Невозможно сгенерировать модуль для модели без первичного key. Мое понимание заключается в том, что представление наследует первичный ключ из таблицы, из которой оно считывает.
Кто-нибудь знает обходной путь для этого, который все еще довольно легко поддерживать с помощью Symfony? Было бы удивительно, если бы я мог использовать DB Views с фреймворком Symfony. Дайте мне знать, если вам нужно больше деталей. В целом ни одна точка зрения не работает, какой бы сложной или простой она ни была.
P.S. Я попытался отредактировать файл ./config/doctrine/schema.yml, чтобы изменить столбец id в представлении на первичный ключ, который находится в фактической таблице, и я все еще получаю ту же ошибку при попытке создать модуль внешнего интерфейса в symfony. ,
tableName: v_tablename
columns:
id:
type: integer(4)
fixed: false
unsigned: false
primary: true --> This used to be primary: false
default: '0'
notnull: true
autoincrement: false
* K Я понял это, но я не могу опубликовать свой ответ до 8 часов, так как я новый пользователь.
Я был на 1/2 пути, когда я редактировал файл schema.yml. Если вы пытаетесь сгенерировать модуль из представления, и вы создали свою модель БД вне Symfony, скажем, с помощью MySQL Workbench, с доктриной вы должны построить свою схему, а затем построить свою модель в Symfony из существующей структуры базы данных, например:
1 - доктрина php symfony: build-schema (при этом создается файл schema.yml и т. Д.) Однако, если у вас есть представления в вашей схеме базы данных, первичные ключи не генерируются в схеме Файл .yml. Отредактируйте его вручную и измените основной: ложный на основной: истинный соответственно там, где они вам нужны.
2 - доктрина php Symfony: build-model После выполнения шага 2 после добавления первичных ключей вы можете успешно сгенерировать свой модуль
3 - доктрина php Symfony: модель модуля внешнего интерфейса генерирующего модуля