Laravel Nova在Update的多个字段上验证唯一性

问题描述 投票:0回答:1

我有表EventRegistration包含'id','user_id','event_id'。用户可以注册多个事件,但不能注册TWICE。一个事件可以由多个用户参加

我需要'user_id''event_id'的唯一性组合

 BelongsTo::make( __('User'),'user')
             ->searchable()
             ->rules('required')
             ->creationRules(Rule::unique('event_registration','user_id')
                               ->where(function($query) use ($event_id){
                                  return $query->where('event_id',$event_id);
                               }))
             ->updateRules(Rule::unique('event_registration','user_id')
                               ->where(function($query) use ($event_id){
                                  return $query
                                        ->where('event_id',$event_id);

                               })
                               ->ignore($this->id),
                               // ->ignore('{{resourceId}}') // Does not work as well
    ),

创建规则效果很好。更新规则显示错误(资源ID为5389)

方法照亮\验证\验证器:: validate5389不存在。

我想Laravel正在尝试转换ID以进行验证,但是无法调用该方法。我想念什么?

laravel laravel-nova
1个回答
0
投票
BelongsTo::make(__('User'), 'user') ->searchable() ->creationRules([ 'required', Rule::unique('event_registration', 'user_id') ->where(function ($query) use ($event_id) { return $query->where('event_id', $event_id); }) ]) ->updateRules([ 'required', Rule::unique('event_registration', 'user_id') ->where(function ($query) use ($event_id) { return $query->where('event_id', $event_id); }) ->ignore($request->resourceId) ]),
© www.soinside.com 2019 - 2024. All rights reserved.