voskobovich / yii2-linker-behavior

This behavior makes it easy to maintain many-to-many and one-to-many relations in your ActiveRecord models in Yii2.
Other
80 stars 19 forks source link

Illegal string offset 'updater' #2

Closed loveorigami closed 7 years ago

loveorigami commented 7 years ago

После замены ManyToMany на Linker behavior при сохранении модели появляется ошибка Illegal string offset 'updater'

0001

voskobovich commented 7 years ago

Сек, сейчас исправлю.

loveorigami commented 7 years ago

у меня перед 122 строкой print_r($params) выдает $params string(4) "tabs" - название relation

voskobovich commented 7 years ago

@loveorigami покажи как у тебя сконфигурировано поведение в модели.

loveorigami commented 7 years ago

как в доке

    return [
        [
            'class' => \voskobovich\linker\LinkerBehavior::className(),
            'relations' => [
                'tab_ids' => 'tabs', // getTabs()
                'group_ids' => 'groups', // getGroups()
                'service_ids' => 'services', // getServices()
            ],
        ],
    ];
voskobovich commented 7 years ago
            'relations' => [
            'relations' => [

это меня смущает. Ты скопировал код из проекта или накидал сам?

loveorigami commented 7 years ago

т.е. ошибка появляется верно. Ты ждешь массив, а туда передается строка

loveorigami commented 7 years ago

поправил выше.

loveorigami commented 7 years ago

вот тут

                // Many-to-many
                if (empty($params['updater']['class'])) {
                    $params['updater']['class'] = ManyToManyUpdater::className();
                }

на самом деле строка $params = tabs

voskobovich commented 7 years ago

Да, я уже увидел. Эта ситуация не учтена в тестах. Сейчас исправлю :)

voskobovich commented 7 years ago

@loveorigami отправил изменения, залей себе @dev ревизию.

loveorigami commented 7 years ago

Обновился. Потестил. заработало! Спасибо.

voskobovich commented 7 years ago

Ок. Сейчас выпущу RC

voskobovich commented 7 years ago

Готово! Тестируй дальше, я постараюсь реагировать оперативно. Над тестами еще работаю, так что пиши :)