php - 为什么 laravel 验证不显示错误
问题描述
我正在尝试验证来自表单的请求并出现问题,而不是在视图上显示错误消息。验证成功,刷新视图但不显示错误。显然 $errors 总是空的,我在全新安装时对其进行了测试。
Laravel 版本:5.8.33 PHP 版本:7.3.8 数据库驱动和版本:mysql 5.7.22
形式是这个
@section('content')
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $message)
<li>{{ $message }}</li>
@endforeach
</ul>
</div>
@endif
<form class="form-group" method="POST" action="/trainers" enctype="multipart/form-data">
@csrf
<div class="form-group">
<label for="">Nombre</label>
<input type="text" name="name" value="@isset($trainer->name){{$trainer->name}}@endisset" class="form-control">
</div>
<div class="form-group">
<label for="">Slug</label>
<input type="text" name="slug" value="@isset($trainer->slug){{$trainer->slug}}@endisset" class="form-control">
</div>
<div class="form-group">
<label for="">Descripción</label>
<input type="text" name="description" value="@isset($trainer->description){{$trainer->description}}@endisset" class="form-control">
</div>
<div class="form-group">
<label for="">Avatar</label>
<input type="file" name="avatar">
</div>
<button type="submit" class="btn btn-primary">Guardar</button>
</form>
@endsection
带有验证的存储功能是这个
public function store(Request $request)
{
$validatedData = $request->validate([
'name' => 'required|max: 10',
'avatar' => 'required|image',
'slug' => 'required',
'description' => 'required',
]);
$trainer = new Trainer();
$file = $request->file('avatar');
if ($file != "") {
$name = time().$file->getClientOriginalName();
$file->move(public_path().'/images/', $name);
}
else{
$name = "Sin Imagen.jpg";
}
// return $name; //Ver nombre archivo
$trainer->name = $request->input('name');
$trainer->avatar = $name;
$trainer->description = $request->input('description');
$trainer->slug = $request->input('slug');
$trainer->save();
return 'Saved';
}
UPDATE 在刀片中添加 {{ $errors }} 并返回 [],$errors 为空
解决方案
而不是使用$request->validate
编辑您的代码,$this->validate
而是使用或此代码:
$messages = [
'description.required' => 'description is required',
];
$validator = Validator::make($request->all(), [
'name' => 'required|max: 10',
'avatar' => 'required|image',
'slug' => 'required',
'description' => 'required',
],$messages);
推荐阅读
- jenkins - Doxygen 需要一些额外的命令
- javascript - 将 jQuery 的兄弟函数转换为原生 Javascript
- java - 如何从包含顶点和边的文本文件创建图形?
- reactjs - 如何通过 react-dnd 更改拖动元素样式
- python - 分组和正则表达式
- java - 如何等到某个值出现在 HTML 标签上?
- java - Java Stream过滤不包含特定项目列表作为属性的对象列表
- php - 我如何显示来自 laravel 控制器的列表数据
- c++ - 有没有办法从具有透明度 GDI+ 的位图中保存 PNG
- html - 在 HTML / Blazor 中设置默认值 Select (Dropdown) Foreach