OctoberCMS: Как сделать модель User уведомляемой?

RainLab\User\Models\User класс не использует Notifiable черта и, следовательно, не возможно позвонить notify или же Notification::send в теме. Я хочу написать плагин, который расширяет RainLab\User\Models\User и добавляет Notifiable черта к этому. Как я могу это сделать?

0

Решение

Я привил черту как поведение: 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';
});
}

Вы можете использовать тот же принцип для любой другой черты.

3

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

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

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