如何在Laravel Precognition中设置自定义错误提示信息?
在Laravel Precognition中设置自定义错误消息
Laravel Precognition 底层复用了框架的验证系统,所以自定义错误消息的方式和常规验证高度一致,主要有两种常用实现方式:
1. 使用表单请求类(推荐)
如果验证逻辑复杂,建议创建专门的表单请求类,在类中定义规则和自定义消息,Precognition会自动识别并使用这些消息。
创建表单请求类(比如 RegisterRequest):
namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class RegisterRequest extends FormRequest { public function authorize() { return true; // 根据实际业务设置权限逻辑 } public function rules() { return [ 'username' => 'required,unique:Userlogin,username', 'password' => 'required', 'email' => 'required,unique:Userlogin,email', ]; } public function messages() { return [ 'required' => 'The :attribute field is required.', 'unique' => ':attribute is already used', // 也可针对特定属性的特定规则单独设置消息 'username.required' => 'Username cannot be empty.', ]; } }
在控制器中使用Precognition:
use App\Http\Requests\RegisterRequest; public function register(RegisterRequest $request) { // 若路由配置了Precognition中间件会自动触发验证 // 也可手动调用: $request->precognize(); // 后续业务逻辑 }
2. 控制器内直接定义规则和消息
如果验证逻辑简单,可在控制器方法中直接调用 precognize 方法,同时传入规则和自定义消息数组,用法和 validate 方法一致:
public function register(Request $request) { $request->precognize( [ 'username' => 'required,unique:Userlogin,username', 'password' => 'required', 'email' => 'required,unique:Userlogin,email', ], [ 'required' => 'The :attribute field is required.', 'unique' => ':attribute is already used', ] ); // 后续业务逻辑 }
补充说明
两种方式都支持使用:attribute、:value等验证占位符,语法和常规验证完全相同。Precognition会在预验证阶段返回这些自定义错误消息,前端可直接接收展示。
内容的提问来源于stack exchange,提问作者Zain Hibattulloh
相关产品推荐
相关产品推荐

