Skip to content

Blog Công Nghệ

MENUMENU
  • Trang chủ
  • Giới Thiệu
  • Lập Trình
    • Lập Trình Website
      • Laravel
        • Phân Tích Dự Án
      • PHP
      • SQL
      • HTML
      • CSS
      • Javascipt
      • My Project
      • Wordpress
    • Luyện Skill
    • Lập trình winform
    • CSDL
    • Lập Trình Android
    • Trí tuệ nhân tạo
    • Khai Khoáng Dữ Liệu
    • Arduino
    • Khác
    • Đồ án
  • Phần Mềm
    • Powerpoint
    • Tool
  • Cuộc sống và Giải trí
    • Hợp âm
    • web5ngay - youtube
    • Công Giáo
    • Kỹ Năng Sống
    • Street Workout
  • Danh sách bài viết
  • Guide line
    • Guild line phỏng vấn
    • Guide lines Laravel
    • Guide line Module Frontend
  • Tóm tắt sách
  • Fanpage

Blog Công Nghệ

Nơi chia sẻ kiến thức

Validate trong laravel

4 Tháng Tư, 2020 by admin
Lượt xem: 24

Validate trong laravel

Contents

  • 1. Validate là gì?
  • 2. Cách sử dụng Validate trong laravel 6
    • 2.1 Cấu trúc cơ bản
    • 2.2 Dừng kiểm tra xác thực khi có một lỗi xác thực
    • 2.3 Form Request Validate
    • 2.4 Tùy chỉnh thông báo lỗi
    • 2.5 Chỉnh sửa đầu vào trước khi validate
    • 2.6 Cách khác sử dụng validate
    • 2.6 Làm việc với thông báo lỗi
    • 2.7 Các validate có sẵn của laravel
  • Kết Luận

1. Validate là gì?

Validate là việc xác thực dữ liệu đầu vào để tránh gây sai dữ liệu, gây dữ liệu thiếu logic hay dữ liệu rác. Validate trong laravel thì khác hơn, laravel sử dụng cơ chế validate bằng những yêu cầu của HTTP requests.

2. Cách sử dụng Validate trong laravel 6

2.1 Cấu trúc cơ bản

<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

class PostController extends Controller
{
     public function store(Request $request)
     {
          $validatedData = $request->validate([
               'title' => 'required|unique:posts|max:255',
               'body' => 'required',
          ]);
          //pass validate code
     }
}


//hoặc có thể sử dụng mảng như sau:
$validatedData = $request->validate([
     'title' => ['required', 'unique:posts', 'max:255'],
     'body' => ['required'],
]);

2.2 Dừng kiểm tra xác thực khi có một lỗi xác thực

$request->validate([
     'title' => 'bail|required|unique:posts|max:255',
     'body' => 'required',
]);

Bạn sử dụng bail để làm điều này. Như ở trên nếu required đưa ra lỗi xác thực là fail thì những kiểm tra sau unique, max sẽ không được thực hiện.

2.3 Form Request Validate

//tạo request
php artisan make:request StoreBlogPost
//sau khi tạo sẽ nằm ở App\Http\Requests

//Bạn viết những validate trong hàm rules
public function rules()
{
     return [
          'title' => 'required|unique:posts|max:255',
          'body' => 'required',
     ];
}
//lưu ý để sử dụng được thì bạn phải bật true ở hàm authorize
public function authorize()
{
     return true;
}

//Khi gọi thì bạn truyền classname của request và gọi validate từ request
public function store(StoreBlogPost $request)
{
    //pass validate code
}
//một lưu ý nữa để sử dụng nó bạn phải khai báo sử dụng nó
use App\Http\Requests\StoreBlogPost;

2.4 Tùy chỉnh thông báo lỗi

Bạn ghi đè lại phương thức messages của request bạn tạo.

public function messages()
{
     return [
          'title.required' => 'A title is required',
          'body.required' => 'A message is required',
     ];
}
//sử dụng thông báo lỗi
<form method="post" action="{{asset('testPath')}}">
     {{csrf_field()}}
     <input type="text" name="title">
     <input type="text" name="body">
     <input type="submit" name="submit">

     @if ($errors->any())
          @error('title')
               {{$message}}
          @enderror

          @error('body')
               {{$message}}
          @enderror
     @endif
</form>

//hoặc 
@if ($errors->any())
     @foreach ($errors->all() as $error)
          {{ $error }}
     @endforeach
@endif

2.5 Chỉnh sửa đầu vào trước khi validate

use Illuminate\Support\Str;

protected function prepareForValidation()
{
     $this->merge([
          'slug' => Str::slug($this->slug),
     ]);
}

2.6 Cách khác sử dụng validate

Đó là sử dụng Validator.

<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;

class PostController extends Controller
{
     public function store(Request $request)
     {
          $validator = Validator::make($request->all(), [
               'title' => 'required|unique:posts|max:255',
               'body' => 'required',
          ]);
          if ($validator->fails()) {
               return redirect('post/create')
                    ->withErrors($validator)
                    ->withInput();
          } 
     }
}

//Bạn có thể đặt tên cho thùng chứa lỗi(chẳng qua là biến ghi thông tin lỗi) chuyển về view như sau:
return redirect('register')
->withErrors($validator, 'login');

//Bên view sử dụng
{{ $errors->login->first('email') }}

2.6 Làm việc với thông báo lỗi

//truy xuất một phần tử
$errors = $validator->errors();
echo $errors->first('email');

//truy xuất nhiều phần tử
foreach ($errors->get('email') as $message) {
//
}

//lấy tất cả thông báo lỗi
foreach ($errors->all() as $message) {
//
}

//kiểm tra có lỗi nào đó không
if ($errors->has('email')) {
//
}

.//tùy chỉnh thông báo lỗi thông qua tham số thứ ba
$messages = [
     'required' => 'The :attribute field is required.',
];

$validator = Validator::make($input, $rules, $messages);

2.7 Các validate có sẵn của laravel

Validate laravel là gì

Các validate hay dùng. Cái này mình sưu tầm của toidicode: https://toidicode.com/validation-trong-laravel-44.html

Validate trong laravel như thế nào

Kết Luận

Như vậy bạn đã trải qua được validate trong laravel 6. Như mình đã nói ở các bài viết trước, bạn chỉ nên nhớ và sử dụng 1 cách thôi là đủ rồi, vì mỗi cách đều cho hiệu quả giống nhau, với mình thì mình chọn thông qua Requests, bởi vì request có thể sử dụng cho nhiều cái nữa ví dụ như session, do đó dễ nhớ và tiện cho mình sử dụng hơn. Cảm ơn bạn đã đọc bài viết này. Bài viết sau mình sẽ hướng dẫn Authentication trong Laravel bạn cùng xem nhé.

Related posts:

  1. Request trong Laravel
  2. HTTP Responses trong Laravel như thế nào?
  3. Session trong Laravel
  4. Middleware trong Laravel – lợi hại như thế nào

Post navigation

Previous Post:

Ntucoder – ROBOT5 – Robot đi tuần

Next Post:

Kỹ năng thuyết trình ấn tượng – thầy Nguyễn Hoàng Khắc Hiếu

Trả lời Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Ẩn sidebar

Tìm kiếm

Generic selectors
Exact matches only
Search in title
Search in content
Search in posts
Search in pages

Blog Công Nghệ

Bài viết mới

  • Master typescript
  • Sendmail trong Laravel sử dụng dịch vụ SES, SQS của Amazon
  • Install SSL in Nginx Ubuntu
  • Docker study
  • Bảo vệ: Hướng dẫn code bot Telegram easy game

Lượng truy cập

0074699
Visit Today : 295
Visit Yesterday : 178
This Month : 970
Who's Online : 1
© 2025 Blog Công Nghệ | WordPress Theme by Superbthemes