RainLab\User\Models\User
класс не использует Notifiable
черта и, следовательно, не возможно позвонить notify
или же Notification::send
в теме. Я хочу написать плагин, который расширяет RainLab\User\Models\User
и добавляет Notifiable
черта к этому. Как я могу это сделать?
Я привил черту как поведение: 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';
});
}
Вы можете использовать тот же принцип для любой другой черты.
Других решений пока нет …