Всем хорошего дня.
Подскажите, как можно отключить частично (или все) behaviors, еще до выборки данных через ActiveRecord?
Есть у меня модель Restaurant, в которой я добавляю достаточно много behaviors. Часть отрабатывает AFTER_FIND. И все отрабатывают, с этим проблем нет. Но вот в некоторых случаях, мне не нужно, что бы они отрабатывали. Т.е. к примеру выбирая список ресторанов для выбора из выпадающего списка, мне нужно минимум информации, голые данные из БД, без применения behaviors. Что-то в духе Restaurant::find()->select(['id', 'title', 'slug'])->where(['status' => Restaurant::STATUS_PUBLISHED])->all();
Получается, что мне нужно применить ->detachBehaviors();, но еще до выборки данных. Нашел что-то подобное здесь - Dynamic Detach - https://gist.github.com/nadar/ae6aeefca ... 35a718cb28 , примерно это мне и нужно, но я не понимаю откуда берется метод ->bind(['unserialize' => false]). Мне нужно его добавить в ActiveRecord?
Отключение Behavior до выборки данных
Re: Отключение Behavior до выборки данных
Не надо весь этот ужас.
Сделайте новую чистую модель без бихевиоров чисто для чтения. И в неё читайте.
Либо напрямую можно выбрать данные как массив.
Сделайте новую чистую модель без бихевиоров чисто для чтения. И в неё читайте.
Либо напрямую можно выбрать данные как массив.
Re: Отключение Behavior до выборки данных
Мне кажется это излишнее добавление сущностей. Да, в принципе - это решение, но не проще обойтись одной моделью и отключать по мере надобности, что не нужно? Или просто такой возможности в Yii не предусмотрено и это будет костылем?
Напрямую это как? Можете привести пример кода?