2 回答

TA贡献1827条经验 获得超8个赞
您收到的错误是由于->validate(). 这将返回一个array,因此$validation将是一个array而不是一个Validator实例,并且您不能调用->fails()一个array。要解决这个问题,只需省略->validate():
$validation = Validator::make($data, ['url' => 'required|url']);
if($validation->fails()){
dd("Failed");
}
边注; 注意你的语法。$dd()不是一个有效的调用。

TA贡献1906条经验 获得超3个赞
您可以直接使用对象validate提供的方法Illuminate\Http\Request如下
$request->validate([
'title' => 'required|unique:posts|max:255',
'author.name' => 'required',
'author.description' => 'required',
]);
//if fails code after this line will not be executed
此验证将自动重定向到后面。这是 laravel 的默认验证。如果没有失败,它将继续执行。
手动
现在您可以手动实现并根据您的要求进行重定向。
use Validator;
$validator = Validator::make($request->all(), [
'title' => 'required|unique:posts|max:255',
'body' => 'required',
]);
//checks your validation and redirect as you want
if ($validator->fails()) {
return redirect('where/ever/you/want')
->withErrors($validator)
->withInput();
}
validate()同样,您可以通过调用方法进行默认重定向
Validator::make($request->all(), [
'title' => 'required|unique:posts|max:255',
'body' => 'required',
])->validate();
如果您调用validate方法,它将重定向为默认的 laravel。
dd()是一种方法,简短版本的die and dump
有用的链接:
https://github.com/laravel/framework/blob/5.7/src/Illuminate/Validation/Validator.php#L312
- 2 回答
- 0 关注
- 93 浏览
添加回答
举报