我有这个包含规则和 withValidator 作为第二层验证的表单请求。
注意:我知道在规则上具有唯一性会抑制此示例的需要,但我需要在这里进行进一步的验证。
public function rules(Request $request) {
return [
"name" => "required|max:191",
"begin_date" => "required|after_or_equal:today|date_format:d-m-Y",
"end_date" => "required|after:begin_date|date_format:d-m-Y",
];
}
public function withValidator($factory) {
$result = User::where('name', $this->name)->get();
if (!$result->isEmpty()) {
$factory->errors()->add('User', 'Something wrong with this guy');
}
return $factory;
}
Run Code Online (Sandbox Code Playgroud)
我确信它会进入,if因为我之前已经放置了一个 dd 来检查它是否进入内部。但是,它在控制器上继续执行此方法,但我不希望它这样做。
public function justATest(UserRequest $request) {
dd("HI");
}
Run Code Online (Sandbox Code Playgroud)
我是个白痴,没有阅读完整的文档。
它需要用 after 函数指定,如下所示:
public function withValidator($factory) {
$result = User::where('name', $this->name)->get();
$factory->after(function ($factory) use ($result) {
if (!$result->isEmpty()) {
$factory->errors()->add('User', 'Something wrong with this guy');
}
});
return $factory;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8551 次 |
| 最近记录: |