在我的phpunit测试中,我正在更新值:
/** @test */
public function it_updates_newsletter_when_user_privacy_is_updated()
{
$privacy = create('App\UserPrivacy', ['user_id' => auth()->id()]);
$privacy->update(['firstname' => 'Philipp']);
}
我正在尝试捕获特征中的更新事件。但事实是,它从来没有被人称为。这是特征:
trait UpdatesNewsletter
{
/**
* Boot the trait.
*/
protected static function bootUpdatesNewsletter()
{
if (auth()->guest()) return;
static::updated(function ($model){
var_dump('is called by trait');
});
}
}
就我的健全性检查而言,我为模型本身编写了事件捕获。
class UserPrivacy extends Model
{
use UpdatesNewsletter;
/**
* Boot the model.
*/
protected static function boot()
{
parent::boot();
static::updated(function ($privacy){
var_dump('is called by class');
});
}
}
在控制台中,我仅看到一条消息:
string(18) "is called by class"
我在做什么错了?
答案 0 :(得分:0)
这很奇怪,仅在这种情况下,我才以某种方式没有auth会话。
protected static function bootUpdatesNewsletter()
{
static::updated(function ($model){
if (auth()->guest()) return; // at this point you have access to auth()->user etc
var_dump('is called by trait');
});
}