2017-01-18 7 views
0

Yii2 имеет функцию generating CRUD for table with gii.Yii2: добавить поле к автогенерируемому CRUD (автоматически?)

Он создает несколько файлов: контроллер, модель, модель поиска и виды.

Что делать, если после генерации CRUD мне нужно добавить больше полей в таблицу? Я вижу, что мне нужно изменить:

  • Моделя
    • PHPDoc
    • rules()
    • attributeLabels()
  • Поиск модели
    • rules()
    • search() (Tweak ->andFilterWhere() звонки)
  • Просмотров:
    • index (столбцы сетки)
    • _form (модель входы)
    • _search (поиск входов)
    • view (атрибут строки)

Много работы. Есть ли способ сделать это проще/автоматически? Я понимаю, что я могу просто восстановить CRUD с помощью gii, но в этом случае все мои другие настройки будут перезаписаны (потеряны).

Возможно, существует какое-то другое решение CRUD для Yii2, которое не содержит жесткие коды всех полей и позволяет автоматически изменять схемы таблиц в представлениях/моделях? Был бы рад узнать об этом.

ответ

2

Если вы не хотите, чтобы перезаписать файл или добавить изменения вручную, вы должны ниже опции:

В Gii, после нажатия кнопки предварительного просмотра вы можете увидеть список файлов.

enter image description here

Если файл имеет изменения или уже в каталоге чем дифф кнопка отображается. При нажатии diff кнопка вы можете увидеть изменения в файле.

enter image description here

С этой модели (окно) вы можете изменить файл как ваши потребности, или вы можете копировать/вставить код в/из временного файла и управлять ими.

+0

Спасибо за ваш ответ! Этот метод также требует много ручной работы, особенно когда к модели добавлено много методов. В настоящее время я пытаюсь создать CRUD в отдельной папке и расширить мою модель/контроллер от него. Но представления не могут быть расширены ... – cronfy

+0

Похоже, что мой метод по-прежнему требует копирования кода из diff ... даже если я расширяю свою модель из сгенерированной модели, мне нужно переопределить правила и методы отношений, иначе я ошибаюсь (не расширен) моделей из методов отношения. Таким образом, кажется, что ваш путь является единственным рабочим. Благодаря! Но в дополнение к тому, что вы предлагаете, я по-прежнему использую не GII-сгенерированные модели, а мои собственные модели, расширенные для сгенерированных (чтобы сохранить автозаполнение в среде IDE). – cronfy

+0

Работает как очарование – Wizard

0

Простой способ - регенерировать модель и crud после добавления полей в таблицу. Если у вас есть изменения в crud, вы можете сгенерировать в файлах GUI без сохранения и скопировать палочку, переместив новый код столбца.