Кто знает простой способ перечислить в safeAttributes все поля таблицы кроме 1-2. Объясняю зачем. Есть таблица из 50 полей. Примерно 1-2 поля из неё не безопасны. Мне кажеться глупо перечислять 48 полей в safeAttributes темболее если в будущем поля в базе могут быть переименованы. Может есть красивый вариант как через $this в моделе достать все поля в таблице?
Правильно ли, что БД меняется, поля переименовываются, а в ПО изменения не заносятся?
Всех мучений - выполнить строчку и вставить в программу. Напр., для MySQL:
SELECT CONCAT("return array('", GROUP_CONCAT(column_name SEPARATOR "', '"), "');")
FROM information_schema.columns
WHERE table_schema=SCHEMA()
AND table_name=...
AND column_name NOT IN (...)
Выполнять же подобное при каждом запросе не рекомендую.
Yii наверняка при инициализации и работе с моделью где то держит перечень полей с базы. Поэтому наверняка есть более красивый способ чем делать запрос в сэйватрибутес к базе
Про изменение полей я тоже наверно ляпнул т.к. такого врядли будет, но перечислять 40-50 полей - явно не красивый подход. должно же быть что то получше.
Zolter [Ozzy], я имел в виду не выполнять в скрипте, а выполнить руками и вставить статичную строку в программу. Конечно, хозяин — барин, но мне видится такой подход некошерным, когда программа ничего не знает о структуре БД. Добавят в БД поля, которые тоже надо добавить в safe, да позабудут о программе. Однообразность полезна — сложнее забыть.