Laravel 5.8 должен отправлять события синхронизации, присоединения и отсоединения (https://laravel.com/docs/5.8/releases найдите раздел Промежуточная таблица/события сводной модели).
ОБНОВЛЕНИЕ: примечания к выпуску были обновлены после публикации этого вопроса (дополнительная информация: https://github.com/laravel/framework/issues/28050 - https://github.com/laravel/docs/pull/5096).
Я попробовал это, но следующий код выдает исключение:
Вызов неопределенного метода App\ProjectUser::syncing()
ПРИМЕЧАНИЕ: поскольку Laravel 5.8 должен отправлять событие синхронизации, я не хочу использовать внешний пакет.
class User extends Model
{
public function projects()
{
return $this->belongsToMany(\App\Project::class)->using(\App\ProjectUser::class);
}
}
class Project extends Model
{
public function users()
{
return $this->belongsToMany(\App\User::class)->using(\App\ProjectUser::class);
}
}
class ProjectUser extends Pivot
{
public static function boot()
{
parent::boot();
static::syncing(function ($item) {
dd('syncing event has been fired!');
});
}
}
// web.php
$project = \App\Project::first();
$project->users()->sync([1,2]);
Я попытался переместить метод загрузки с ProjectUser
на User
и Project
, но получаю то же исключение.
boot()
метод. - person Tpojka   schedule 28.03.2019