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

Laravel 5.5.14中如何自定义「不能邀请自己」的验证错误提示?

解决Laravel请求验证自定义「cannot be self」错误提示的问题

Hey there! 我来帮你搞定这个自定义错误提示的需求~

在Laravel的Form Request类(也就是你创建的CreateInviteRequest)里,除了rules()方法,我们可以通过添加messages()方法来覆盖默认的错误提示信息。具体操作如下:

  1. 在CreateInviteRequest类中新增messages()方法
    这个方法返回一个数组,键名的格式是字段名.规则名,对应的值就是你想要的自定义错误文本。针对你用的not_in规则,我们需要设置invite_user.not_in对应的提示:
public function messages()
{
    return [
        'invite_user.not_in' => 'cannot be self',
    ];
}
  1. 完整的CreateInviteRequest类示例
    把它和你现有的rules()方法放在一起,大概是这样:
namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Auth;

class CreateInviteRequest extends FormRequest
{
    /**
     * 确定用户是否有权限进行此请求。
     *
     * @return bool
     */
    public function authorize()
    {
        // 根据你的需求调整这里的权限逻辑,默认是false,记得改成true或者对应的权限判断
        return true;
    }

    /**
     * 获取适用于请求的验证规则。
     *
     * @return array
     */
    public function rules()
    {
        return [
            'invite_user' => [
                'numeric',
                'exists:users,id',
                'not_in:'.Auth::guard('api')->user()->id
            ]
        ];
    }

    /**
     * 获取自定义验证错误信息。
     *
     * @return array
     */
    public function messages()
    {
        return [
            'invite_user.not_in' => 'cannot be self',
        ];
    }
}

这样修改之后,当用户尝试提交自己的ID作为invite_user时,就会显示你想要的「cannot be self」错误提示,而不是Laravel默认的「The selected invite_user is invalid.」啦~

对了,顺便提一句,authorize()方法默认返回false,记得根据你的实际需求调整权限判断,不然请求会直接被拒绝哦😉

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:52:21