Laravel验证

【Laravel验证】验证是检查输入数据的过程。默认情况下, laravel提供使用ValidatesRequests特征来验证所有传入Http请求的基本控制器类。
让我们通过示例了解验证。
我们将创建一个应用程序, 在其中添加学生的姓名。

  • 首先, 我们创建一个新的laravel项目, 在其中执行验证。输入下面在命令行工具中给出的命令
作曲家创建项目laravel / laravel = 5.8 student_app -prefer-dist;
Laravel验证

文章图片
上面的输出显示在xampp / htdocs目录中已成功创建了student_app项目。
  • 创建项目后, 我们将首先通过数据库迁移创建一个模型。
Laravel验证

文章图片
  • 上面的语句在app文件夹中创建模型“ Student”, 在Migrations文件夹中创建模型“ create_students_table”。 “ create_students_table.php”文件的结构如下:
< ?phpuse Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreateStudentsTable extends Migration{/*** Run the migrations.** @return void*/public function up(){Schema::create('students', function (Blueprint $table) {$table-> bigIncrements('id'); $table-> string('name'); $table-> timestamps(); }); }/*** Reverse the migrations.** @return void*/public function down(){Schema::dropIfExists('students'); }}

上面的代码创建一个具有四个列(id, name, created_at, updated_at)的表“ students”。
用户表中可用的数据:
用户表
Laravel验证

文章图片
  • 使用以下命令迁移数据库中的以上更改:
php artisan迁移;
Laravel验证

文章图片
  • 现在, 我们创建一个控制器来处理所有数据库操作。
Laravel验证

文章图片
  • 创建控制器后, 我们将创建控制器所有方法的路由。要创建路由, 我们需要在web.php文件中编写以下代码:
路线:: resource(’ student’ , ‘ StudentController’ );
Laravel验证

文章图片
  • 在此步骤中, 我们将定义StudentController类的index()方法, 下面给出index()方法的代码:
public function index(){$student=Student::all(); return view('index', compact('student')); }

  • 现在, 我们为应用程序创建一个视图页面(index.blade.php)。
index.blade.php
@extends('layout.master')@section('content')< h1> Student < /h1> < form action=="{{ route('student.store') }}"method="Post"> @csrf< div> < input type="text" name="name"> < /div> < br/> < div> < input type="button" value="http://www.srcmini.com/Add Students"> < /div> < /form> < ul> @foreach($student as $students)< li> {{$students-> name}}< /li> @endforeach< ul> @endsection

上面代码的输出如下所示:
Laravel验证

文章图片
我们知道StudentController的index()方法的URI是’ / student’ , 因此当我们访问url’ localhost / student_app / public / student’ 时, 它将调用index()方法。 index()方法返回index.blade.php文件的视图, 如上面的屏幕快照所示。
  • 当我们在以上屏幕截图所示的文本框中输入数据时, 应将其保存在数据库中。为了实现这一点, store()函数的代码如下:
public function store(Request $request){$data=http://www.srcmini.com/$request-> validate([//validating the name field.'name'=> 'required']); $student=new Student; $student-> name=$request-> get('name'); $student-> save(); }

输出量
Laravel验证

文章图片
当我们单击“添加学生”按钮, 然后刷新页面时, 输出为:
Laravel验证

文章图片
正如我们在上面的屏幕截图中看到的那样, “ Himanshu”已添加到学生列表中, 这意味着“添加学生”按钮可以正常工作。
有时, 当我们不输入任何数据时会出现这种情况, 而我们按下“添加学生”按钮;这需要验证。我们在store()方法中添加了用于验证“名称”字段的验证代码, 但未显示任何错误消息。为了显示错误消息, laravel提供了显示错误消息的错误变量。它可以用作:
{{$errors-> first('name')}}

在index.blade.php中添加以上行后, index.blade.php文件的代码如下所示:
index.blade.php
@extends('layout.master')@section('content')< h1> Student < /h1> < form action="{{ route('student.store') }}" method="Post"> @csrf< div> < input type="text" name="name"> < /div> < br/> < div> {{$errors-> first('name')}}< /div> < br/> < div> < button type="submit"> Add Students < /div> < /form> < ul> @foreach($student as $students)< li> {{$students-> name}}< /li> @endforeach< ul> @endsection

输出量
Laravel验证

文章图片
我们还可以在文本框字段中限制字符。如果要在名称字段中输入至少5个字符, 则可以在验证函数中使用min字段。
public function store(Request $request){$data=http://www.srcmini.com/$request-> validate(['name'=> 'required|min:5']); $student=new Student; $student-> name=$request-> get('name'); $student-> save(); }

输出量
Laravel验证

文章图片
Laravel验证

文章图片

    推荐阅读