OctoberCMS: расширение плагинов с помощью признака Nullable

Как должен черты быть добавлены в существующую модель при расширении плагинов?

Я попробовал следующее с RainLab.User плагин:

UserModel::extend(function($model) {
$model->implement[] = 'October.Rain.Database.Trait.Nullable';
$model->nullable[] = 'company';
});

И получил эту ошибку:

Косвенная модификация перегруженного свойства RainLab \ User \ Models \ User :: $ nullable не имеет никакого эффекта

1

Решение

Вы не можете динамически расширять класс, используя Черты. Вы должны использовать поведения вместо этого или (в зависимости от того, что вам нужно сделать с расширенной моделью) расширьте класс модели вашим собственным классом модели, а затем добавьте Trait к этой пользовательской модели.

Возможно, самым простым способом было бы реализовать Nullable Trait как пользовательское поведение в вашем плагине, а затем расширить класс модели с помощью Nullable Behavior.

Если вы хотите, вы также можете отправить запрос функции (через проблемы) в хранилище просить кого-то реализовать черты базы данных как поведения, упрощающие подобные расширения в будущем.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]