You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel更新记录时,如何为stud_num添加入id排除验证(含自定义规则)

Laravel UserController 更新方法中给stud_num字段添加排除当前记录的唯一验证

要让stud_num字段拥有和username、email一致的「排除当前记录」唯一验证逻辑,只需修改stud_num验证规则数组里的unique规则,拼接当前用户ID即可:

将原本的:

"stud_num" => ["required", "unique:users,stud_num", "max:15", new StrMustContain('TG')],

修改为:

"stud_num" => ["required", "unique:users,stud_num," . $id, "max:15", new StrMustContain('TG')],

修改后的完整方法代码

public function update(Request $request, $id)
{
    $this->validate($request, [
        "first_name" => "required|max:255|regex:/^([^0-9]*)$/",
        "middle_name" => "nullable|max:255|regex:/^([^0-9]*)$/",
        "last_name" => "required|max:255|regex:/^([^0-9]*)$/",
        "contact" => ["required", "regex:/^(09|\\+639)\\d{9}$/"],
        "course" => "required",
        "role_as" => "required",
        "stud_num" => ["required", "unique:users,stud_num," . $id, "max:15", new StrMustContain('TG')],
        "username" => "required|alpha_dash|unique:users,username," . $id,
        "email" => "required|email:rfc,dns|unique:users,email," . $id
    ]);
            
    // codes for update    
}

这里的unique:users,stud_num," . $id规则会告知Laravel:验证stud_num在users表中唯一,但要排除ID为$id的当前记录,这样用户更新自身信息时,即使保留原stud_num也不会触发唯一验证错误,和username、email的验证逻辑完全统一。

内容的提问来源于stack exchange,提问作者Sharmae Reyes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 05:39:24