OctoberCMS:如何使用户模型通知?

时间:2018-03-01 21:01:38

标签: php laravel octobercms laravel-notification

RainLab\User\Models\User课程不使用Notifiable特征,因此无法在其上调用notifyNotification::send。我想编写一个扩展RainLab\User\Models\User并为其添加Notifiable特征的插件。我怎么能这样做?

1 个答案:

答案 0 :(得分:3)

我已将特征表现为行为:https://github.com/CptMeatball/notifiable-user

它是如何运作的?

此插件充当Notifiable特征的简单包装器,并将其作为行为添加到User模型中。它的工作原理是在行为类中插入特征。然后在插件的引导方法期间将其添加到User模型。就这么简单。

<强> NotifiableBehavior

use Illuminate\Notifications\Notifiable as NotifiableTrait;
class Notifiable extends \October\Rain\Database\ModelBehavior
{
    use NotifiableTrait;
    public function __call($name, $params = null)
    {
        if (!method_exists($this, $name) || !is_callable($this, $name)) {
            return call_user_func_array([$this->model, $name], $params);
        }
    }
}

<强> Plugin.php

public function boot()
{
    User::extend(function($model) {
        $model->implement[] = 'CptMeatball.NotifiableUser.Behaviors.Notifiable';
    });
}

您可以对任何其他特征使用相同的原则。