为什么 Laravel 验证不显示错误信息。

9 浏览
0 Comments

为什么 Laravel 验证不显示错误信息。

我在尝试验证表单请求时遇到了一个问题,即在视图上没有显示错误消息。

验证成功,刷新了视图,但没有显示错误。看起来$errors始终为空。

我在全新安装上进行了测试。

Laravel版本:5.8.33

PHP版本:7.3.8

数据库驱动程序和版本:mysql 5.7.22

表单代码如下:

@section('content')

@if ($errors->any())

    @foreach ($errors->all() as $message)

  • {{ $message }}
  • @endforeach

@endif

@csrf

@endsection

具有验证功能的store函数如下:

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";

}

$trainer->name = $request->input('name');

$trainer->avatar = $name;

$trainer->description = $request->input('description');

$trainer->slug = $request->input('slug');

$trainer->save();

return '已保存';

}

更新

在blade中添加{{ $errors }}并返回[],$errors为空。

0
0 Comments

为什么Laravel验证不显示错误?

当页面刷新时,如果错误对象不为空...并且您的控制器中的验证代码有效,因此请检查浏览器中的检查元素的HTML代码。可能错误框被隐藏了,为了测试,您可以在blade中使用以下代码:

@if ($errors->any())

($errors){{-- for check error bag --}}

    @foreach ($errors->all() as $message)

  • {{ $message }}
  • @endforeach

@endif

但是,无论如何,使用Chrome检查,我没有看到错误框。在blade中使用以下代码并添加{{ $errors }},显示[],是空的?

问题出现的原因:

- 错误框可能被隐藏了。

解决方法:

- 检查HTML代码,确保错误框没有被隐藏。

- 在blade中添加代码以显示错误信息。

- 使用Chrome的检查工具来确认错误框是否存在。

希望以上解决方法对于解决Laravel验证不显示错误的问题有所帮助。

0
0 Comments

laravel validation不显示错误的原因是代码中没有正确地处理错误信息。解决方法是在代码中添加正确的错误信息显示逻辑。

在给定的代码中,可以看到三个条件判断语句,分别用于显示成功信息、错误信息和验证错误信息。然而,在显示验证错误信息的部分存在问题,错误信息没有被正确地显示出来。

为了解决这个问题,可以使用`@if`语句来判断是否有验证错误信息存在,如果有则进行显示。修改后的代码如下:

@if (count($errors) > 0)
    
@endif

通过以上修改,当存在验证错误信息时,错误信息将正确地显示在页面中。这样用户就能够清楚地了解到哪些输入有误并进行相应的修正。

0
0 Comments

问题:为什么Laravel验证不显示错误信息?

原因:

1. 代码中使用了错误的验证方法。应该使用$this->validate而不是$request->validate

2. 命名空间错误导致类找不到。可以尝试修复命名空间,使用\Validator,或在文件顶部添加use Validator;use Illuminate\Support\Facades\Validator;

解决方法:

1. 修改代码,使用$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);

2. 检查命名空间是否正确,使用\Validator或添加use Validator;use Illuminate\Support\Facades\Validator;

以上错误信息Integrity constraint violation: 1048 Column 'name' cannot be null (SQL: insert into trainers (name, avatar, description, slug, updated_at, created_at) values (?, Sin Imagen.jpg, ?, ?, 2019-08-28 22:49:48, 2019-08-28 22:49:48))与问题无关,不在本文讨论范围内。

0