Laravel 10x:如何将数组存在性校验转为Form Request规则?
Laravel Form Request 实现数组值校验转换
你可以直接利用Laravel内置的验证规则完成需求,无需保留传统的in_array判断逻辑,具体实现方式有两种:
方式一:字符串拼接规则
直接将允许的数组转换为逗号分隔的字符串,配合in规则使用:
public function rules(): array { return [ 'number_selected' => 'required|in:' . implode(',', self::$allowedNumbers), ]; }
方式二:使用Rule类(推荐)
这种方式可读性更强,也更适合动态生成允许列表的场景,需要先引入Illuminate\Validation\Rule类:
use Illuminate\Validation\Rule; public function rules(): array { return [ 'number_selected' => [ 'required', Rule::in(self::$allowedNumbers), ], ]; }
自定义错误提示(可选)
如果需要替换默认的错误消息,可以在Form Request类中重写messages方法:
public function messages(): array { return [ 'number_selected.in' => '所选编号不在允许范围内', ]; }
内容的提问来源于stack exchange,提问作者Sudo Sur
相关产品推荐
相关产品推荐

