如果用户在Laravel中注册事件,“如何执行”函数将从透视表中扣除可用性数量

如果用户在Laravel中注册事件,“如何执行”函数将从透视表中扣除可用性数量,laravel,eloquent,Laravel,Eloquent,我有3个表,分别是userevent和event\u user 我正在创建一个具有配额限制的事件注册,一旦配额已满,其他用户将无法注册到该特定事件。但问题是我为此建立了M-M关系。而event\u user仅存储user\u id和event\u id。一旦用户成功注册到事件中,我如何访问事件表并扣除事件可用性 public function storeEvent(Request $request) { //deducts the event_availability

我有3个表,分别是
user
event
event\u user

我正在创建一个具有配额限制的事件注册,一旦配额已满,其他用户将无法注册到该特定事件。但问题是我为此建立了M-M关系。而
event\u user
仅存储
user\u id
event\u id
。一旦用户成功注册到事件中,我如何访问
事件
表并扣除
事件可用性

  public function storeEvent(Request $request)
    {
    //deducts the event_availability

       $user = User::find(Auth::user()->id);
       $user->events()->syncWithoutDetaching([$request->event_id]);
       return redirect()->route('user.events');

事件模型

public function users()
    {
        return $this->belongsToMany(User::class,'event_user','event_id','user_id');
    }

由于您有来自请求的
event\u id
,您可以根据该请求进行更新

$user=user::find(Auth::user()->id);
$user->events()->syncwithout分离([$request->event_id]);
$event=event::find($request->event\u id);
$event->update([
“事件可用性”=>(int)$event->event\u availability-1
]);
return redirect()->route('user.events');

syncwithout detaching()
是否正常工作。?是。至少现在对我来说还不错。我使用它会有麻烦吗?是的,数据存储在我的
event\u user
中,就像您在上面的数据库中看到的那样。