1、创建验证器
php artisan make:request RoleRequests
运行后验证器默认在:app/Http/Requests文件夹里面
2、RoleRequests验证器代码
<?php
namespace App\Http\Requests;
use App\Traits\Validator;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
//php artisan make:request RoleRequests
class RoleRequests extends FormRequest
{
use Validator;
/**
* Get the validation rules that apply to the request.
*
* @return array<string, mixed>
*/
public function rules()
{
return [
'name' => [
'required','max:20',
Rule::unique("role")->where(function ($query) {
// 验证表“role”的name字段,并且加入条件admin_user_id=1才判断唯一
$query->where("admin_user_id", 1);
})
]
];
}
public function messages()
{
return [
'name.required'=>'名称必填',
'name.unique'=>'名称已存在',
'name.max'=>'名称最长为20',
];
}
}
3、Validator类代码(重写验证器返回报错提示)
<?php
namespace App\Traits;
trait Validator{
/**
* 验证器格式返回
* @param \Illuminate\Contracts\Validation\Validator $validator
*/
public function failedValidation(\Illuminate\Contracts\Validation\Validator $validator)
{
if ($validator->stopOnFirstFailure()->fails()) {
apiError($validator->errors()->all()[0]);
}
}
}