双引导功能导致特征串通
Double boot function causes trait collusion
laravel 调试器向我显示此错误:
Trait 方法引导尚未应用,因为在 App\User
上与其他 trait 方法有冲突
如果我删除其中一个特征,Uuids 或 Entrust,则不会显示错误。但我需要他们两个。那么我该如何解决这个问题呢?'
我正在使用laravel 5.8
提前致谢!
namespace App;
use Zizaco\Entrust\Traits\EntrustUserTrait;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Uuids;
use EntrustUserTrait;
}
特征 Uuid
<?php
namespace App;
use Webpatser\Uuid\Uuid;
trait Uuids
{
/**
* Boot function from laravel.
*/
protected static function boot()
{
parent::boot();
static::creating(function ($model) {
$model->{$model->getKeyName()} = Uuid::generate(5,'test', Uuid::NS_DNS);
});
}
}
我认为必须对引导功能做一些事情
<?php
namespace App;
use Webpatser\Uuid\Uuid;
trait Uuids
{
/**
* Boot function from laravel.
*/
protected static function bootUuids()
{
static::creating(function ($model) {
$model->{$model->getKeyName()} = (string) Uuid::generate(4);
});
}
}
参考:
laravel 调试器向我显示此错误:
Trait 方法引导尚未应用,因为在 App\User
上与其他 trait 方法有冲突如果我删除其中一个特征,Uuids 或 Entrust,则不会显示错误。但我需要他们两个。那么我该如何解决这个问题呢?'
我正在使用laravel 5.8
提前致谢!
namespace App;
use Zizaco\Entrust\Traits\EntrustUserTrait;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Uuids;
use EntrustUserTrait;
}
特征 Uuid
<?php
namespace App;
use Webpatser\Uuid\Uuid;
trait Uuids
{
/**
* Boot function from laravel.
*/
protected static function boot()
{
parent::boot();
static::creating(function ($model) {
$model->{$model->getKeyName()} = Uuid::generate(5,'test', Uuid::NS_DNS);
});
}
}
我认为必须对引导功能做一些事情
<?php
namespace App;
use Webpatser\Uuid\Uuid;
trait Uuids
{
/**
* Boot function from laravel.
*/
protected static function bootUuids()
{
static::creating(function ($model) {
$model->{$model->getKeyName()} = (string) Uuid::generate(4);
});
}
}
参考: