Laravel การใช้งาน Blade Templates, Validation

25 เม.ย. 2020 , 6,449 Views   , หมวดหมู่ Laravel ทุกหมวดหมู่ โค๊ดดิ้ง   , ป้ายกำกับ:, ,


Blade Templates

เข้าไปสร้างหรือจัดการในโฟลเดอร์ resources/views

@yield(‘content’)

คือ สำหรับดึงเนื้อหาใน @section(‘content’) ……  @endsection มาแสดง

จากโค๊ดด้านบน หากไม่เจอ @section(‘content’)…@endsection ให้ไปดึงข้อมูลใน View : contentnotfound มาแสดง

ไฟล์ Template หลักของ

ตัวอย่างสร้าง Layout Template แยกส่วน Header, Sidebar, Content, Footer

สร้างใว้ใน resources/views/layouts/app.blade.php
และมีการ include ไฟล์ย่อย
resources/views/layouts/header.blade.php
resources/views/layouts/sidebar.blade.php
resources/views/layouts/footer.blade.php

จากนั้นก็สร้างไฟล์แยกย่อยเป็น

resources/views/layouts/header.blade.php
resources/views/layouts/sidebar.blade.php
resources/views/layouts/footer.blade.php

ตัวอย่างการเรียกใช้งาน Template หลัก

สมมุติว่าเราจะสร้างหน้าสำหรับแก้ไขข้อมูล โดยสร้างไฟล์ resources/views/editview.blade.php

@extends(‘layouts.app’) คือเรียกใช้งาน Template หลัก

สำหรับในไฟล์ resources/views/layouts/sidebar.blade.php จะมีโค๊ดดังนี้

ในไฟล์ resources/views/editview.blade.php ในส่วนของโค๊ด

โค๊ดด้านบน

@parent คือจะดึงข้อมูลจาก sidebar.blade.php มาแสดงก่อนและตัวด้วยข้อมูลที่อยู่ใน @section(‘sidebar’) คือ <p>This is appended to the master sidebar.</p>

ดูตัวอย่างเพิ่มเติม https://seenual.com/laravel-ติดตั้ง-config-ใช้งาน-authentication-ใช้กั/#bladetemplate

ดูเพิ่มเติม https://laravel.com/docs/master/blade#template-inheritance

Validation

Validation Roles ดูได้จากลิ้งค์นี้ครับ https://laravel.com/docs/master/validation#available-validation-rules

หลักๆทำได้ 2 วิธี คือ

  • สร้าง Form Request Validation สำหรับเรียกใช้งานตรวจสอบข้อมูล ได้ในทุก Method เช่น ในตอน Create, Edit  ฯลฯ เป็นต้น
  • สร้าง Validation โดยตรงตรวจสอบเฉพาะ Method นั้นๆ

Form Request Validation

ใช้ Command ด้านล่าง เพื่อสร้าง

จากนั้นจะมีไฟล์ StoreUserPost.php ถูกสร้างใว้ที่โฟลเดอร์ app/Http/Requests

โดยในไฟล์มีโค๊ดดังนี้

function authorize() กำหนดให้เป็น true คือมีสิทธิ์ใช้ validation นี้

function rules() กำหนด ฟิวด์และ Role สำหรับตรวจสอบข้อมูล

function messages() กำหนดข้อความ Error สำหรับแต่ละ Role

function attributes() กำหนดในการแสดงชื่อ(Label) ของ แต่ละฟิวด์ ในการแสดง Error

สร้าง Validation โดยตรงตรวจสอบเฉพาะ Method นั้นๆ

ตัวอย่างโค๊ด ในไฟล์ Controller

หรือสร้าง Validation เอง ตามโค๊ดด้านล่าง

ยกเว้นตรวจสอบข้อมูล Unique ของเรคคอร์ดที่กำลังแก้ไข

เช่น email ไม่ให้ซ้ำกับเรคคอร์ดอื่น แต่เวลาอัพเดทในเรคคอร์ดของตัวเอง ให้ยกเว้น ให้กำหนด rules ดังนี้

แสดง Error จาก Validation ใน view

ตัวอย่าง แสดงทุก Error

ตัวอย่าง แสดงในแต่ละ input field ที่ error

ดูเพิ่มเติม https://laravel.com/docs/master/validation#quick-displaying-the-validation-errors หรือ https://laravel.com/docs/master/blade#validation-errors


ป้ายกำกับ:, ,