Добавить новое поле в модель
Добавить новое поле в модель
Иногда по структуре бд не всегда удается предусмотреть все необходимые поля в какой нибудь таблице. Поэтому добавляю их динамически через phpmyadmin.
Проблемы возникают когда на основе таблиц генерится модель при помощи gii. Новое поле никак не хочет добавляться setAttribues и совершенно не хочет сохраняться в бд. Куда только новое поле не добавлял, все равно приходится генерить заново на gii модель, восстанавливать код потом руками.
Проблемы возникают когда на основе таблиц генерится модель при помощи gii. Новое поле никак не хочет добавляться setAttribues и совершенно не хочет сохраняться в бд. Куда только новое поле не добавлял, все равно приходится генерить заново на gii модель, восстанавливать код потом руками.
Re: Добавить новое поле в модель
Какой-нибудь валидатор стоит добавить на новое поле в rules() и всё должно работать.
Есть еще один крутой план: генерить модельку, наследовать и писать свой код уже в наследнике и работать только с ним. Базовую модель можно будет генерировать сколько угодно раз
Есть еще один крутой план: генерить модельку, наследовать и писать свой код уже в наследнике и работать только с ним. Базовую модель можно будет генерировать сколько угодно раз
Re: Добавить новое поле в модель
HQ0, против данного крутого плана разработчики специально предупреждают:
We often see people using the models generated by gii without change and just extend them to adjust some parts of it. This is not how it is ment to be used.
Re: Добавить новое поле в модель
это про вторую версии, хотя и в первой я не понимаю когда люди так делаютmaleks писал(а):HQ0, против данного крутого плана разработчики специально предупреждают:We often see people using the models generated by gii without change and just extend them to adjust some parts of it. This is not how it is ment to be used.
Re: Добавить новое поле в модель
Это ведь решает проблему, если модельку генерят по несколько раз за день? Остальные проблемы которые могут появиться надо решать когда они возникнут
- sluchainiyznak
- Сообщения: 617
- Зарегистрирован: 2013.05.19, 17:51
- Откуда: ХМАО-Югра, г. Сургут
- Контактная информация:
Re: Добавить новое поле в модель
как вариант отнаследоваться от сгенерированной gii модельки и писать свой дополнительный код именно в наследнике, тогда в любой момент можно перегенерить основную модельку
Re: Добавить новое поле в модель
sluchainiyznak, какое интересное, свежее предложение. Спасибо, будем юзать
Re: Добавить новое поле в модель
HQ0 писал(а):sluchainiyznak, какое интересное, свежее предложение. Спасибо, будем юзать
Re: Добавить новое поле в модель
между первой и второй тут диффик не большой.yan писал(а): это про вторую версии, хотя и в первой я не понимаю когда люди так делают
Re: Добавить новое поле в модель
А нельзя каким нибудь простым способом "научить" yii видеть дополнительные поля.
Они же все хранятся где то по идее
Они же все хранятся где то по идее
Re: Добавить новое поле в модель
он и так их видит и с ними работает, а в модели для новых полей добавляют валидацию-пхпдок-релейшены-лейбыbimply писал(а):А нельзя каким нибудь простым способом "научить" yii видеть дополнительные поля.
Они же все хранятся где то по идее
Re: Добавить новое поле в модель
Не работает setAttributes,если просто прописать поля в валидацию+лейблыyan писал(а):он и так их видит и с ними работает, а в модели для новых полей добавляют валидацию-пхпдок-релейшены-лейбыbimply писал(а):А нельзя каким нибудь простым способом "научить" yii видеть дополнительные поля.
Они же все хранятся где то по идее
Re: Добавить новое поле в модель
сделать чтобы работали в setAttributes не проблема, только надо ли - вдруг добавленное поле вообще не должно меняться из вне?bimply писал(а):
Не работает setAttributes,если просто прописать поля в валидацию+лейблы
Re: Добавить новое поле в модель
Как сделать? Уже задолбался gii пересоздавать всё зановоyan писал(а):сделать чтобы работали в setAttributes не проблема, только надо ли - вдруг добавленное поле вообще не должно меняться из вне?bimply писал(а):
Не работает setAttributes,если просто прописать поля в валидацию+лейблы
Re: Добавить новое поле в модель
что-то не внимательно прочитал - достаточно правильно прописать правила валидации чтобы через setAttributes заработало, для работы фильтров еще в методе search надо добавитьbimply писал(а): Не работает setAttributes,если просто прописать поля в валидацию+лейблы
Re: Добавить новое поле в модель
может что то с кешированием схемы таблицы?
Re: Добавить новое поле в модель
У меня все это сделано кроме метода searchyan писал(а):что-то не внимательно прочитал - достаточно правильно прописать правила валидации чтобы через setAttributes заработало, для работы фильтров еще в методе search надо добавитьbimply писал(а): Не работает setAttributes,если просто прописать поля в валидацию+лейблы
Re: Добавить новое поле в модель
логи еще можно посмотреть, когда включен режим отладки отвергнутые атрибуты записываются http://www.yiiframework.com/doc/api/1.1 ... ute-detail
Re: Добавить новое поле в модель
Что то сложно как то. Неужто ни у кого не возникало подобной ситуации и все таблицы имели всегда верную структуру?yan писал(а):логи еще можно посмотреть, когда включен режим отладки отвергнутые атрибуты записываются http://www.yiiframework.com/doc/api/1.1 ... ute-detail
Re: Добавить новое поле в модель
В том что выведет следующий код есть новые столбцы?:
Код: Выделить всё
var_dump($arobject->getMetaData());