Laravel 验证

2025年3月17日 | 阅读 3 分钟

验证是检查传入数据的过程。 默认情况下,laravel 提供了基础控制器类,该类使用 ValidatesRequests trait 来验证所有传入的 Http 请求。

让我们通过一个例子来理解验证。

我们将创建一个应用程序,在其中添加学生姓名。

  • 首先,我们创建一个新的 laravel 项目,在其中执行验证。 在命令行工具中输入以下命令

composer create-project laravel/laravel=5.8 student_app -prefer-dist;

Laravel Validation

上面的输出显示 **student_app** 项目已在 **xampp/htdocs** 目录中成功创建。

  • 创建项目后,我们将首先使用数据库迁移创建一个模型。
Laravel Validation 1
  • 上面的语句在 app 文件夹中创建一个模型“Student”,并在 Migrations 文件夹中创建一个“create_students_table”。 'create_students_table.php' 文件的结构如下

上面的代码创建一个包含四列(id、name、created_at、updated_at)的表“students”。

用户表中的可用数据

用户表

Laravel Validation 2
  • 使用以下命令将上述更改迁移到数据库中

php artisan migrate;

Laravel Validation 3
  • 现在,我们创建一个控制器来处理所有数据库操作。
Laravel Validation 4
  • 创建控制器后,我们将创建控制器所有方法的路由。 要创建路由,我们需要在 **web.php** 文件中编写以下代码

Route::resource('student','StudentController');

Laravel Validation 5
  • 在此步骤中,我们将定义 **StudentController** 类的 **index()** 方法,**index()** 方法的代码如下
  • 现在,我们创建应用程序的视图页面(**index.blade.php**)。

index.blade.php

上面代码的输出如下所示

Laravel Validation 6

我们知道 StudentController 的 **index()** 方法的 URI 是 '/student',因此当我们点击 url '**localhost/student_app/public/student**' 时,它会调用 **index()** 方法。 **index()** 方法返回 **index.blade.php** 文件的视图,如上面的屏幕截图所示。

  • 当我们在上面的屏幕截图所示的文本框中输入数据时,它应该保存在数据库中。 为了实现这一点,下面给出了 store() 函数的代码

输出

Laravel Validation 7

当我们点击“**Add Students**”按钮,然后刷新页面时,输出将是

Laravel Validation 8

我们在上面的屏幕截图可以看到,“**Himanshu**”已添加到学生列表中,这意味着“**Add Students**”按钮工作正常。

有时会出现我们不输入任何数据,然后我们按下“**Add Student**”按钮的情况; 这需要验证。 我们在 **store()** 方法中添加了验证代码来验证“**name**”字段,但我们没有显示任何错误消息。 为了显示错误消息,laravel 提供了 **error 变量**,用于显示错误消息。 它可以被用作

在 **index.blade.php** 中添加以上行后,**index.blade.php** 文件的代码如下所示

index.blade.php

输出

Laravel Validation 9

我们还可以限制文本框字段中的字符。 如果我们想在名称字段中至少输入 5 个字符,那么我们可以使用验证函数中的 **min** 字段。

输出

Laravel Validation 10
Laravel Validation 11
下一个主题Laravel 文件上传