有遇到这个bug吗?withoutEvents函数里面的事件被触发
描述:
Version: Laravel Framework 7.26.1
在调用withoutEvents() 后,Model中的保存事件仍然被触发。
安装项目
composer create-project –prefer-dist laravel/laravel blog
创建一个Model
<?php
namespace App;
use App\Events\UserSavedEvent;
use Illuminate\Database\Eloquent\Model;
class TestModel extends Model
{
public $table = 'users';
protected $dispatchesEvents = [
'saved' => UserSavedEvent::class,
];
}
创建Event
<?php
namespace App\Events;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;
class UserSavedEvent
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public function __construct()
{
dd('UserSavedEvent');
}
}
测试用例
Route::get('/', function () {
TestModel::withoutEvents(function () {
$user = TestModel::first();
$user->save();
});
return view('welcome');
});
结果
withoutEvents中的saved事件被触发;
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: