我的表 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)
方法Illuminate \ Validation \ Validator :: validate5389不存在。
我猜想Laravel正在尝试转换ID以进行验证,但是无法调用该方法。我想念什么?
答案 0 :(得分: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)
]),