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

Laravel中exists验证规则对数组无效问题求助

Laravel数组验证失效问题解决

你当前的验证规则存在两处关键问题,导致无效数据能绕过校验:

  1. 数组元素验证语法错误:Laravel中验证数组的每个子元素,正确语法是字段名.*,你写的curso_inteligencia_id*少了点号,系统无法识别这是数组元素的验证规则。
  2. 规则代码不完整:第二个规则块缺少闭合的],语法错误会直接导致该规则不生效。

修正后的验证规则

'curso_inteligencia_id' => [
    'nullable',
    'array',
],
'curso_inteligencia_id.*' => [
    'numeric',
    'exists:curso_inteligencia,id',
    'required', // 可选:如果数组非空时要求每个元素必须填写,可根据业务需求添加
],

额外处理(可选)

由于Select2允许手动输入,可能出现前端直接传单个字符串而非数组的情况,建议在验证前统一格式化请求数据,确保无论传单个值还是数组,都能被正确校验:

// 在控制器验证前添加这段代码
$request->merge([
    'curso_inteligencia_id' => is_array($request->curso_inteligencia_id) 
        ? $request->curso_inteligencia_id 
        : [$request->curso_inteligencia_id]
]);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 13:45:31