Есть ли способ написать мой собственный валидатор перед функцией отсоединения.Laravel: Где я могу написать свой beforeDetach
Например, у меня есть пользователи и группы с отношениями «многие ко многим». Невозможно удалить последнего администратора из группы, если только пользователь не является последним членом группы. Я не хотел бы всегда писать такую же проверку в контроллерах.
Это довольно просто, чтобы написать BeforeSave и afterSave написав
public function save()
{
// Before save
parent::save();
// After save
}
Но в настоящее время я не занимаюсь, где я должен написать мой beforeDetach.
я вызываю метод отсоединения, как этот
$group->users()->detach($user_id);
Я хочу, чтобы в фоновом режиме всегда пассивно проверить некоторые условия, которые должны быть выполнены.
В настоящее время я не нашел решение. Если это невозможно изначально, как следует его реализовать?
Редактировать
Думаю, это было бы еще круче, если бы я мог иметь методы, подобные этим:
$group->users()->detach($user_id);
$group->users()->validateAndDetach($user_id)
Возможно, вы нашли решение, я должен расширить класс BelongsToMany.И когда я устанавливаю отношения, я должен использовать свой новый класс. Собираюсь попробовать это сейчас –