首页 > 解决方案 > Laravel / Voyager 创建事件未在用户模型中触发

问题描述

我试图在 Laravel/Voyager 应用程序的用户模型中触发“创建”事件时插入一些逻辑,这是我的代码:

<?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends \TCG\Voyager\Models\User
{ 
use Notifiable;

public static function boot()
{
    parent::boot();

    // over-ride the creating event
    static::creating(function($user)
    {
      $user->created_by = auth()->user() ? auth()->user()->id : null;
    });

    // over-ride the updating event
    static::updating(function($user)
    {
      $user->updated_by = auth()->user() ? auth()->user()->id : null;
    });
}

}

但看起来“创建”事件从未被调用,而“启动”方法被调用。有人知道为什么吗?提前致谢!

标签: laraveleventsvoyager

解决方案


对于将陷入相同情况的任何人:您必须告诉 Voyager 在 BREAD 设置中使用哪个模型/类,否则 Voyager 将始终使用 \TCG\Voyager\Models\User 。


推荐阅读