【问题标题】:OctoberCMS: Extending plugins using nullable traitOctoberCMS:使用可空特征扩展插件
【发布时间】:2016-12-11 05:20:38
【问题描述】:

在扩展插件时应该如何将traits 添加到现有模型中?

我使用RainLab.User 插件尝试了以下操作:

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

得到了这个错误:

间接修改重载属性 RainLab\User\Models\User::$nullable 无效

【问题讨论】:

    标签: php octobercms octobercms-plugins


    【解决方案1】:

    您不能使用 Traits 动态扩展类。您必须改用Behaviors,或者(取决于您需要对扩展模型执行的操作)使用您自己的自定义模型类扩展模型类,然后将特征添加到该自定义模型。

    最简单的方法可能是将 Nullable Trait 实现为插件中的自定义行为,然后使用您的 Nullable Behavior 扩展模型类。

    如果您愿意,您还可以向the repository 提交功能请求(通过问题),请求某人将数据库特征实现为行为,以简化未来的类似扩展。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-20
      • 2016-09-13
      • 2015-06-03
      • 2019-10-24
      • 1970-01-01
      • 2019-11-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多