SluggableBehavior странное поведение

Привет!

У меня стандартный CRUD, сгенеренный gii. Есть модель Book, и есть BookSearch. Настроено SluggableBehavior тоже обычно:




            [

                'class' => 'yii\behaviors\SluggableBehavior',

                'attribute' => 'name',

                'ensureUnique' => true,

            ],



Все окей, но если вручную в БД удалить для одной записи значение из колонки slug - то в модели BookSearch после валидации




        if (!$this->validate()) {

            // uncomment the following line if you do not want to return any records when validation fails

            // $query->where('0=1');

            return $dataProvider;

        }



$this->slug становится равным "-2". Соответственно, в gridview становится пусто, так как ни одной записи со slug == -2 не находится.

Как вы думаете, это баг или фича? :)) На мой взгляд, не очень прозрачное поведение. Т.е., получается, SluggableBehavior разработано при допущении, что в таблице ни при каких обстоятельствах не будет записей с пустым slug? А мне вот понадобилось… и пришлось убрать поиск в gridview по slug (что тоже нужно). В багтрекере отвергли мое сообщение - поэтому и пишу сюда, разобраться, что я недопонял.

А с чего должны быть в базе записи с пустым slug?

;) сразу говорю спасибо за ваши труды! тут поклоны

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

Да ладно, можем забить, раз никого не напрягает это))