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

如何在Laravel Livewire中不使用Form Request创建可复用自定义验证规则

Livewire 的验证逻辑底层基于 Laravel 原生验证器实现,完全可以不依赖 FormRequest 类复用所有已有的自定义验证规则,以下是不同场景的实现方式:

场景1:复用通过 Artisan 生成的独立规则类

你通过 php artisan make:rule 生成的自定义规则类可以直接传入验证规则数组中使用,无需额外适配:

// 先引入自定义规则类
use App\Rules\你的自定义规则类名;

public function store() {
     $this->validate([
        'foo' => ['required', new 你的自定义规则类名()] // 直接实例化规则类即可
     ]);
}

场景2:复用已有 FormRequest 中定义的规则

如果你之前已经在 ModelStoreRequest 等 FormRequest 类中定义好了验证规则,可以直接获取规则数组使用,不需要实例化 HTTP 请求对象:

// 引入原有 FormRequest 类
use App\Http\Requests\ModelStoreRequest;

public function store() {
     // 直接调用 rules 方法获取规则数组
     $this->validate((new ModelStoreRequest())->rules());

     // 若 rules 方法定义为静态方法,也可直接静态调用
     // $this->validate(ModelStoreRequest::rules());
}

场景3:复用通过 Validator 扩展注册的字符串规则

如果你是通过 Validator::extend 方法注册的别名形式自定义规则,直接和原生规则一样使用即可:

public function store() {
     $this->validate([
        'foo' => 'required|你注册的规则别名'
     ]);
}

额外说明:如果需要同时复用自定义错误提示,$this->validate 方法的第二个参数支持传入自定义消息数组,用法和 Laravel 原生验证完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 18:39:03