Добрый день.
Собственно есть такая "хотелка": нужен флаг активности статей, при снятии которого статьи в любом месте на сайте не будут показываться. Собственно вопрос даже не столько в конкретной ситуации - она взята для примера и закостылить тут всё легко. Интересен больше сам подход к реализации подобных вещей во фреймворке.
Как организовать доступ к данным так, чтобы были некоторые "фильтры" по умолчанию, которые можно было бы хранить и менять централизовано? Объект у нас один, вести себя он должен одинаково на всём сайте. Если задавать каждый раз подобные фильтры при обращении к модели, то можно где-то что-то со временем забыть/упустить. Если понадобится новый фильтр, допустим по дате начала и окончания активности, надо будет найти все обращения к модели править. Это грустно и абсолютно нелогично.
Помогите новичку во фреймворке разобраться
Фильтрация данных в модели
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Фильтрация данных в модели
Если с моделями вы работаете централизованно через, например, репозиторий, то можно встроить проверку этого флага в репозиторий.
Нравится Yii? Давайте сделаем его лучше!.
Re: Фильтрация данных в модели
Я не совсем это имел ввиду
Задача, если упростить, такая. Есть в базе данных статей булево значение активности. Зашел я через админку на сайт и поменял значение с true на false, и тем самым отключил отображение статей на всём сайте сразу.
Сейчас такой вариант я могу реализовать, только если при запросе к БД укажу в фильтре значение флага active = true. Соответственно в скольких местах есть вызов, в стольких и надо указывать этот фильтр. А хочется для этого одно место придумать.
Как вариант у меня пока в голове только сделать функцию-обертку в модели, и получать все данные только с помощью неё. Это пахнет костылями, но должно сработать. Собственно хочется узнать, есть ли "правильные" способы решения этого вопроса.
Задача, если упростить, такая. Есть в базе данных статей булево значение активности. Зашел я через админку на сайт и поменял значение с true на false, и тем самым отключил отображение статей на всём сайте сразу.
Сейчас такой вариант я могу реализовать, только если при запросе к БД укажу в фильтре значение флага active = true. Соответственно в скольких местах есть вызов, в стольких и надо указывать этот фильтр. А хочется для этого одно место придумать.
Как вариант у меня пока в голове только сделать функцию-обертку в модели, и получать все данные только с помощью неё. Это пахнет костылями, но должно сработать. Собственно хочется узнать, есть ли "правильные" способы решения этого вопроса.
Re: Фильтрация данных в модели
круто! именно то, что было нужно))
спасибо
спасибо