สัปดาห์ที่ 6 • การตรวจสอบข้อมูลและการเชื่อมต่อฐานข้อมูล01-406-093-203 Laravel Course
01-406-093-203
การพัฒนาเว็บแอปพลิเคชันด้วยเฟรมเวิร์ค
โดย นายศุภมิตร จันทร์โทวงศ์
- สาขาวิชาระบบสารสนเทศ คณะบริหารธุรกิจ
อาจารย์ผู้บรรยาย: ศุภมิตร จันทร์โทวงศ์สไลด์ที่ 1 / 19
สัปดาห์ที่ 6 • การตรวจสอบข้อมูลและการเชื่อมต่อฐานข้อมูล01-406-093-203 Laravel Course
เช็คชื่อเข้าชั้นเรียน
- ให้นักศึกษาสแกน QR Code นี้เพื่อเข้าสู่ระบบเช็คชื่อเข้าเรียน
- ระบบจะทำการบันทึกประวัติการเข้าเรียนในวิชานี้อัตโนมัติ
ผู้สอนยังไม่ได้เปิดระบบเช็คชื่อสำหรับบทเรียนสัปดาห์นี้ หรือหมดเวลากรอกข้อมูลแล้ว
อาจารย์ผู้บรรยาย: ศุภมิตร จันทร์โทวงศ์สไลด์ที่ 2 / 19
สัปดาห์ที่ 6 • การตรวจสอบข้อมูลและการเชื่อมต่อฐานข้อมูล01-406-093-203 Laravel Course
เกมทบทวน: Validation Rules Matcher
- ทบทวนความรู้กฎการตรวจสอบข้อมูล (Validation Rules) ใน Laravel
- จับคู่ความต้องการของข้อมูลกับคลาสกฎเกณฑ์ที่ถูกต้อง
Secure Space Laser Clicker! 🚀
จงทำลายสถานีอวกาศที่ส่งผ่านข้อมูล **ผิดกฎ Validation** โดยการคลิกยิงเลเซอร์ทำลายโดยตรง!
**ข้อควรระวัง**: ห้ามยิงสถานีที่ส่งข้อมูล **ถูกกฎ** หากยิงถูกเกราะของคุณจะเสียหาย!
อาจารย์ผู้บรรยาย: ศุภมิตร จันทร์โทวงศ์สไลด์ที่ 3 / 19
สัปดาห์ที่ 6 • การตรวจสอบข้อมูลและการเชื่อมต่อฐานข้อมูล01-406-093-203 Laravel Course
แบบทดสอบก่อนเรียน (Pre-test)
1. ข้อใดกล่าวถึงประโยชน์ของการทำ Form Validation ได้ถูกต้องที่สุด?
A. เพื่อตรวจสอบความถูกต้องและป้องกันข้อมูลที่ไม่ถูกต้องหรือเป็นอันตรายเข้าสู่ระบบ
B. เพื่อความสวยงามของฟอร์ม
C. เพื่อให้เบราว์เซอร์ดาวน์โหลดเร็วขึ้น
D. เพื่อเชื่อมต่อฐานข้อมูลโดยตรง
2. คำสั่งใน Controller ข้อใดใช้สำหรับทำ Form Validation ใน Laravel?
A. $request->validate([...])
B. $request->check([...])
C. $request->verify([...])
D. $request->confirm([...])
3. หากต้องการระบุว่าฟิลด์ 'title' ห้ามปล่อยว่าง และต้องมีสิทธิ์ป้อนข้อความไม่เกิน 50 ตัวอักษร ต้องกำหนดกฎอย่างไร?
A. 'title' => 'required|max:50'
B. 'title' => 'null|limit:50'
C. 'title' => 'must|length:50'
D. 'title' => 'required|size:50'
4. ภัยคุกคาม CSRF (Cross-Site Request Forgery) คืออะไร?
A. การปลอมแปลงคำขอจากเว็บไซต์อื่นเพื่อส่งกระทำบางอย่างในแอปพลิเคชันของเราโดยไม่ได้รับอนุญาต
B. การส่งอีเมลปลอมหาผู้ใช้
C. การโจมตีฐานข้อมูลด้วย SQL Injection
D. การขโมยรหัสผ่านผ่านหน้าฟอร์ม
5. คำสั่งใดของ Blade ที่ต้องใส่ไว้ในแบบฟอร์ม HTML method="POST" เสมอเพื่อสร้าง Token ป้องกัน CSRF?
A. @csrf
B. @token
C. @security
D. @access
6. หากส่งฟอร์มแบบ POST แล้วระบบแจ้งข้อผิดพลาด "419 | Page Expired" เกิดจากสาเหตุใด?
A. ลืมใส่แท็ก @csrf ในฟอร์ม
B. กรอกข้อมูลไม่ครบตามเงื่อนไข
C. รันเซิร์ฟเวอร์ฐานข้อมูลไม่สำเร็จ
D. เส้นทาง Route ผิดพลาด
7. หากฟอร์มใน Blade กำหนด <form method="POST" action="/insert"> จะต้องประกาศ Route รับข้อมูลในไฟล์ routes/web.php อย่างไร?
A. Route::post('/insert', [AdminController::class, 'insert']);
B. Route::get('/insert', [AdminController::class, 'insert']);
C. Route::put('/insert', [AdminController::class, 'insert']);
D. Route::delete('/insert', [AdminController::class, 'insert']);
8. คำสั่ง Directive ใดของ Blade ที่ใช้สำหรับดักตรวจจับและแสดงผลข้อผิดพลาดเมื่อกรอกฟิลด์ 'title' ไม่ผ่านกฎ Validation?
A. @error('title') ... @enderror
B. @ifError('title') ... @endif
C. @warn('title') ... @endwarn
D. @check('title') ... @endcheck
9. หากต้องการระบุข้อความภาษาไทยเมื่อตรวจสอบฟิลด์ 'title' ไม่ผ่านกฎ 'required' ต้องเขียนระบุในพารามิเตอร์ของ validate อย่างไร?
A. 'title.required' => 'กรุณาใส่ชื่อบทความ'
B. 'title' => 'กรุณาใส่ชื่อบทความ'
C. 'required' => 'กรุณาใส่ชื่อบทความ'
D. 'title.error' => 'กรุณาใส่ชื่อบทความ'
10. คลาส Bootstrap ยูทิลิตี้ใดใช้สำหรับตกแต่งข้อความแจ้งเตือนข้อผิดพลาดให้เป็นสีแดงตามมาตรฐาน?
A. text-danger
B. text-error
C. text-warning
D. text-red
อาจารย์ผู้บรรยาย: ศุภมิตร จันทร์โทวงศ์สไลด์ที่ 4 / 19
สัปดาห์ที่ 6 • การตรวจสอบข้อมูลและการเชื่อมต่อฐานข้อมูล01-406-093-203 Laravel Course
Form Validation
- การรับรองความถูกต้องของข้อมูลจากฝั่งไคลเอนต์ (Sanitization & Validation) เพื่อป้องกันข้อมูลผิดพลาดเข้าสู่ฐานข้อมูล
- เขียนเช็กผ่านคำสั่ง
$request->validate([...]) ในคลาสคอนโทรลเลอร์ - กำหนดกฎการบังคับ เช่น required (ห้ามเว้นว่าง), unique (ห้ามซ้ำ), email (รูปแบบเมลที่ถูกต้อง)
- หากตรวจสอบไม่ผ่าน ระบบจะพากลับไปหน้าฟอร์มเดิมพร้อมพ่วงตัวแปรอิมเมจข้อผิดพลาดอัตโนมัติ
code-example.php
public function store(Request $request)
{
$validated = $request->validate([
'title' => 'required|max:255',
'body' => 'required',
]);
// ผ่านการยืนยัน
}
อาจารย์ผู้บรรยาย: ศุภมิตร จันทร์โทวงศ์สไลด์ที่ 5 / 19
สัปดาห์ที่ 6 • การตรวจสอบข้อมูลและการเชื่อมต่อฐานข้อมูล01-406-093-203 Laravel Course
ความปลอดภัยด้วย @csrf (CSRF Protection)
- CSRF (Cross-Site Request Forgery) คือภัยคุกคามที่ผู้ไม่หวังดีส่งคำขอที่ปลอมแปลงมาจากเว็บไซต์อื่นเพื่อกระทำบางอย่างในแอปของเรา
- Laravel ป้องกันภัยคุกคามนี้โดยใช้ Token เพื่อตรวจสอบว่าคำขอนั้นส่งมาจากฟอร์มในระบบเราจริงหรือไม่
- กฎเหล็ก: ในแบบฟอร์ม HTML ที่มี method เป็น POST ทุกอัน จะต้องใส่แทรกคำสั่ง
@csrf ไว้เสมอ - หากไม่ได้ใส่ระบบจะตอบกลับเป็นข้อผิดพลาด
419 | Page Expired เมื่อพยายามกดส่งข้อมูล
code-example.html
<!-- resources/views/form.blade.php -->
<form method="POST">
@csrf <!-- สร้าง Input Token สำหรับการส่งฟอร์มอย่างปลอดภัย -->
<div class="form-group">
<label>ชื่อบทความ</label>
<input type="text" name="title" class="form-control">
</div>
<input type="submit" value="บันทึก" class="btn btn-primary">
</form>
อาจารย์ผู้บรรยาย: ศุภมิตร จันทร์โทวงศ์สไลด์ที่ 6 / 19
สัปดาห์ที่ 6 • การตรวจสอบข้อมูลและการเชื่อมต่อฐานข้อมูล01-406-093-203 Laravel Course
กำหนดปลายทางฟอร์มด้วย Action (Form Action Route)
- แอตทริบิวต์
action ในแท็กฟอร์มมีหน้าที่ระบุพาร์ธ URL ปลายทางที่ต้องการส่งชุดข้อมูลไปประมวลผล - ในที่นี้กำหนดเป็น
action="/insert" เพื่อชี้เป้าหมายไปที่เส้นทาง (Route) สำหรับการเพิ่มบันทึกข้อมูลบทความใหม่ - ทางฝั่ง Laravel จำเป็นต้องกำหนด Route เมธอด
Route::post('/insert', ...) ในไฟล์ Routing เพื่อรองรับการรับข้อมูลดังกล่าว
code-example.html
<!-- resources/views/form.blade.php -->
<!-- กำหนดปลายทางเป็น /insert และระบุเมธอดเป็น POST -->
<form method="POST" action="/insert">
@csrf
<div class="form-group">
<label>ชื่อบทความ</label>
<input type="text" name="title" class="form-control">
</div>
<input type="submit" value="บันทึก" class="btn btn-primary">
</form>
อาจารย์ผู้บรรยาย: ศุภมิตร จันทร์โทวงศ์สไลด์ที่ 7 / 19
สัปดาห์ที่ 6 • การตรวจสอบข้อมูลและการเชื่อมต่อฐานข้อมูล01-406-093-203 Laravel Course
เชื่อมต่อ Route มารับฟอร์ม (Form Submission Route)
- สร้างการเชื่อมโยงเส้นทางขารับข้อมูลด้วยเมธอด
Route::post() เพื่อรองรับคำขอแบบ POST - กำหนดพาร์ธแรกเป็น
/insert ให้ตรงกับแอตทริบิวต์ action ของฟอร์มขาส่งข้อมูล - ผูกเส้นทางไปยังคลาส
AdminController และกำหนดให้เรียกทำงานในเมธอด insert สำหรับการบันทึกประวัติ
code-example.php
// routes/web.php
use App\Http\Controllers\AdminController;
// ผูกเส้นทางขารับฟอร์ม POST ไปยังเมธอด insert ของ AdminController
Route::post('/insert', [AdminController::class, 'insert']);
อาจารย์ผู้บรรยาย: ศุภมิตร จันทร์โทวงศ์สไลด์ที่ 8 / 19
สัปดาห์ที่ 6 • การตรวจสอบข้อมูลและการเชื่อมต่อฐานข้อมูล01-406-093-203 Laravel Course
เขียนกฎการตรวจสอบใน Controller (Validation in Controller)
- ใช้เมธอด
$request->validate() ใน Controller เพื่อกำหนดกฎการตรวจสอบข้อมูลที่รับมาจากฟอร์ม - กำหนดฟิลด์
title ให้เป็นแบบจำเป็นต้องกรอก (required) และมีความยาวไม่เกิน 50 ตัวอักษร (max:50) - กำหนดฟิลด์
content ให้เป็นแบบจำเป็นต้องกรอก (required) - หากมีฟิลด์ใดไม่ผ่านเงื่อนไข ระบบจะหยุดทำงานและส่งกลับไปยังหน้าฟอร์มเดิมพร้อมแสดงข้อความแจ้งเตือนภาษาอังกฤษเริ่มต้น
code-example.php
// app/Http/Controllers/AdminController.php
public function insert(Request $request)
{
// ตรวจสอบความถูกต้องของข้อมูลโดยใช้กฎพื้นฐาน
$request->validate([
'title' => 'required|max:50',
'content' => 'required',
]);
}
อาจารย์ผู้บรรยาย: ศุภมิตร จันทร์โทวงศ์สไลด์ที่ 9 / 19
สัปดาห์ที่ 6 • การตรวจสอบข้อมูลและการเชื่อมต่อฐานข้อมูล01-406-093-203 Laravel Course
แสดงข้อความแจ้งเตือนข้อผิดพลาดด้วย @error (Validation Error Rendering)
- ใช้แท็กคำสั่ง
@error('fieldname') เพื่อดักตรวจจับข้อผิดพลาดรายฟิลด์ที่เกิดขึ้นระหว่างขั้นตอน Validation - ระบบจะทำการส่งออกตัวแปรอัตโนมัติ
$message ให้เรานำไปใช้วนลูปหรือแทรกแสดงผลข้อมูลแจ้งเตือนได้ทันที - ใช้แท็กปิดครอบท้ายการทำงานด้วยคำสั่ง
@enderror เสมอ เพื่อจัดสรรบล็อกการเรนเดอร์เนื้อหา
code-example.html
<!-- resources/views/form.blade.php -->
<div class="form-group">
<label>ชื่อบทความ</label>
<input type="text" name="title" class="form-control">
</div>
@error('title')
<div class="my-2">
<span>{{ $message }}</span>
</div>
@enderror
อาจารย์ผู้บรรยาย: ศุภมิตร จันทร์โทวงศ์สไลด์ที่ 10 / 19
สัปดาห์ที่ 6 • การตรวจสอบข้อมูลและการเชื่อมต่อฐานข้อมูล01-406-093-203 Laravel Course
ตกแต่งสีข้อความผิดพลาดด้วย text-danger (Styling Error Messages)
- ใช้คลาสยูทิลิตี้ Bootstrap
.text-danger ในการตกแต่งข้อความแจ้งเตือนข้อผิดพลาดให้เป็นสีแดงเด่นชัด - ช่วยเพิ่มความตระหนักรู้และปรับปรุงประสบการณ์ใช้งาน (UX) เพื่อแจ้งให้ผู้ใช้เห็นส่วนที่ต้องแก้ไขอย่างรวดเร็ว
- ตัวอย่างการเพิ่มระดับคลาสครอบข้างในแท็ก span เพื่อแสดงผลความสวยงามของหน้าตาแบบฟอร์ม
code-example.html
<!-- resources/views/form.blade.php -->
@error('title')
<div class="my-2">
<!-- ตกแต่งข้อความแจ้งเตือนให้แสดงเป็นสีแดง -->
<span class="text text-danger">{{ $message }}</span>
</div>
@enderror
อาจารย์ผู้บรรยาย: ศุภมิตร จันทร์โทวงศ์สไลด์ที่ 11 / 19
สัปดาห์ที่ 6 • การตรวจสอบข้อมูลและการเชื่อมต่อฐานข้อมูล01-406-093-203 Laravel Course
Custom Validation
- กรณีที่กฎการตรวจของระบบทั่วไปทำงานได้ไม่ตอบโจทย์ เช่น ต้องการระบุข้อความแจ้งเตือนที่เป็นภาษาไทย
- ผ่านอาร์เรย์ตัวแปรพารามิเตอร์ตัวที่สองเข้าใน validate() เพื่อจับคู่คีย์กฎเกณฑ์เป็นข้อความที่ต้องการ
- ดึงสัญลักษณ์ข้อผิดพลาดไปรันด้วยคำสั่ง
@error('fieldname') ในส่วนของการแสดงวิวในหน้า Blade - ตัวอย่างโค้ดสร้างและแสดงข้อความแจ้งเตือนภาษาไทยที่กำหนดเอง
code-example.php
// ใน Controller
$request->validate([
'name' => 'required',
], [
'name.required' => 'กรุณากรอกชื่อจริงของคุณในช่องนี้',
]);
// ใน Blade
<input type="text" name="name">
@error('name')
<div class="text-danger">{{ $message }}</div>
@enderror
อาจารย์ผู้บรรยาย: ศุภมิตร จันทร์โทวงศ์สไลด์ที่ 12 / 19
สัปดาห์ที่ 6 • การตรวจสอบข้อมูลและการเชื่อมต่อฐานข้อมูล01-406-093-203 Laravel Course
กำหนดข้อความแจ้งเตือนภาษาไทย (Custom Validation Messages)
- การประกาศระบุข้อความตอบกลับภาษาไทยใน Controller ทำได้โดยส่งอาเรย์ตัวแปรตัวที่สองเข้าเมธอด
validate() - คีย์อาร์เรย์กำหนดในรูปแบบ
'fieldname.rule' => 'ข้อความที่ต้องการ' เช่น 'title.required' => 'กรุณาใส่ชื่อบทความ' - ช่วยให้เราสามารถควบคุมคำอธิบาย ปรับเปลี่ยน และแสดงผลความต้องการที่เข้าใจง่ายตรงกับกลุ่มเป้าหมายผู้ใช้งาน
code-example.php
// ใน Controller เมธอด insert
$request->validate(
[
'title' => 'required|max:50',
'content' => 'required',
],
[
'title.required' => 'กรุณาใส่ชื่อบทความ',
'title.max' => 'ชื่อบทความต้องไม่เกิน 50 ตัวอักษร',
'content.required' => 'กรุณาใส่เนื้อหา',
]
);
อาจารย์ผู้บรรยาย: ศุภมิตร จันทร์โทวงศ์สไลด์ที่ 13 / 19
สัปดาห์ที่ 6 • การตรวจสอบข้อมูลและการเชื่อมต่อฐานข้อมูล01-406-093-203 Laravel Course
เชื่อมต่อฐานข้อมูล
- การเชื่อมความสัมพันธ์ระหว่างระบบ Laravel กับฐานข้อมูลภายนอก (MySQL/MariaDB/SQLite)
- การกำหนดรหัสการผ่านเข้าถึง ดำเนินการผ่านการป้อนค่าในไฟล์
.env ที่อยู่ในระดับราก - ฟิลด์สำคัญ: DB_CONNECTION (ประเภท), DB_DATABASE (ชื่อเบส), DB_USERNAME, DB_PASSWORD
- คำแนะนำ: หลังเปลี่ยนแปลงข้อมูลในไฟล์ .env ควรล้างแคชคอนฟิกด้วยคำสั่ง Artisan เพื่ออัปเดต
code-example.php
# ตัวอย่างการเปลี่ยนค่าเชื่อมฐานข้อมูลในไฟล์ .env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db_meeting_class
DB_USERNAME=root
DB_PASSWORD=
อาจารย์ผู้บรรยาย: ศุภมิตร จันทร์โทวงศ์สไลด์ที่ 14 / 19
สัปดาห์ที่ 6 • การตรวจสอบข้อมูลและการเชื่อมต่อฐานข้อมูล01-406-093-203 Laravel Course
แบบทดสอบหลังเรียน (Post-test)
1. ข้อใดกล่าวถึงประโยชน์ของการทำ Form Validation ได้ถูกต้องที่สุด?
A. เพื่อตรวจสอบความถูกต้องและป้องกันข้อมูลที่ไม่ถูกต้องหรือเป็นอันตรายเข้าสู่ระบบ
B. เพื่อความสวยงามของฟอร์ม
C. เพื่อให้เบราว์เซอร์ดาวน์โหลดเร็วขึ้น
D. เพื่อเชื่อมต่อฐานข้อมูลโดยตรง
2. คำสั่งใน Controller ข้อใดใช้สำหรับทำ Form Validation ใน Laravel?
A. $request->validate([...])
B. $request->check([...])
C. $request->verify([...])
D. $request->confirm([...])
3. หากต้องการระบุว่าฟิลด์ 'title' ห้ามปล่อยว่าง และต้องมีสิทธิ์ป้อนข้อความไม่เกิน 50 ตัวอักษร ต้องกำหนดกฎอย่างไร?
A. 'title' => 'required|max:50'
B. 'title' => 'null|limit:50'
C. 'title' => 'must|length:50'
D. 'title' => 'required|size:50'
4. ภัยคุกคาม CSRF (Cross-Site Request Forgery) คืออะไร?
A. การปลอมแปลงคำขอจากเว็บไซต์อื่นเพื่อส่งกระทำบางอย่างในแอปพลิเคชันของเราโดยไม่ได้รับอนุญาต
B. การส่งอีเมลปลอมหาผู้ใช้
C. การโจมตีฐานข้อมูลด้วย SQL Injection
D. การขโมยรหัสผ่านผ่านหน้าฟอร์ม
5. คำสั่งใดของ Blade ที่ต้องใส่ไว้ในแบบฟอร์ม HTML method="POST" เสมอเพื่อสร้าง Token ป้องกัน CSRF?
A. @csrf
B. @token
C. @security
D. @access
6. หากส่งฟอร์มแบบ POST แล้วระบบแจ้งข้อผิดพลาด "419 | Page Expired" เกิดจากสาเหตุใด?
A. ลืมใส่แท็ก @csrf ในฟอร์ม
B. กรอกข้อมูลไม่ครบตามเงื่อนไข
C. รันเซิร์ฟเวอร์ฐานข้อมูลไม่สำเร็จ
D. เส้นทาง Route ผิดพลาด
7. หากฟอร์มใน Blade กำหนด <form method="POST" action="/insert"> จะต้องประกาศ Route รับข้อมูลในไฟล์ routes/web.php อย่างไร?
A. Route::post('/insert', [AdminController::class, 'insert']);
B. Route::get('/insert', [AdminController::class, 'insert']);
C. Route::put('/insert', [AdminController::class, 'insert']);
D. Route::delete('/insert', [AdminController::class, 'insert']);
8. คำสั่ง Directive ใดของ Blade ที่ใช้สำหรับดักตรวจจับและแสดงผลข้อผิดพลาดเมื่อกรอกฟิลด์ 'title' ไม่ผ่านกฎ Validation?
A. @error('title') ... @enderror
B. @ifError('title') ... @endif
C. @warn('title') ... @endwarn
D. @check('title') ... @endcheck
9. หากต้องการระบุข้อความภาษาไทยเมื่อตรวจสอบฟิลด์ 'title' ไม่ผ่านกฎ 'required' ต้องเขียนระบุในพารามิเตอร์ของ validate อย่างไร?
A. 'title.required' => 'กรุณาใส่ชื่อบทความ'
B. 'title' => 'กรุณาใส่ชื่อบทความ'
C. 'required' => 'กรุณาใส่ชื่อบทความ'
D. 'title.error' => 'กรุณาใส่ชื่อบทความ'
10. คลาส Bootstrap ยูทิลิตี้ใดใช้สำหรับตกแต่งข้อความแจ้งเตือนข้อผิดพลาดให้เป็นสีแดงตามมาตรฐาน?
A. text-danger
B. text-error
C. text-warning
D. text-red
อาจารย์ผู้บรรยาย: ศุภมิตร จันทร์โทวงศ์สไลด์ที่ 15 / 19
สัปดาห์ที่ 6 • การตรวจสอบข้อมูลและการเชื่อมต่อฐานข้อมูล01-406-093-203 Laravel Course
คำถามท้ายบทเรียน
หากต้องการเรียกดูและแสดงข้อผิดพลาดของการกรอกข้อมูลในช่อง 'email' บนหน้า Blade ต้องใช้คำสั่งใด?
A. @if($errors->has('email'))
B. @error('email') และ @enderror
C. @validate('email')
D. @check('email')
คำอธิบาย: คำสั่ง @error('email') เป็น Directives ของ Blade ที่ใช้ห่อหุ้มบล็อกแสดงผลเมื่อพบข้อผิดพลาดของฟิลด์นั้นๆ
อาจารย์ผู้บรรยาย: ศุภมิตร จันทร์โทวงศ์สไลด์ที่ 16 / 19
สัปดาห์ที่ 6 • การตรวจสอบข้อมูลและการเชื่อมต่อฐานข้อมูล01-406-093-203 Laravel Course
Workshop 6: สร้างระบบคัดกรองฟอร์มและต่อฐานข้อมูล
- 1สร้างฟอร์มเพิ่มข้อมูลพนักงาน และชี้ความสัมพันธ์ไปที่พาร์ธรับข้อมูล
- 2ใน Controller เขียนกฎเกณฑ์ validate ตรวจสอบช่องที่บังคับกรอก (required) และเงื่อนไขรูปแบบอีเมล
- 3เปิดใช้งานส่วนแสดงผลข้อผิดพลาดสีแดงโดยดึงข้อมูลผ่าน @error
- 4ตรวจสอบการเชื่อมต่อฐานข้อมูลผ่านการทดสอบค่าคอนฟิกในไฟล์ .env
command_prompt.sh
$request->validate([
'name' => 'required|min:3',
'email' => 'required|email'
]);
อาจารย์ผู้บรรยาย: ศุภมิตร จันทร์โทวงศ์สไลด์ที่ 17 / 19
สัปดาห์ที่ 6 • การตรวจสอบข้อมูลและการเชื่อมต่อฐานข้อมูล01-406-093-203 Laravel Course
ใบงานที่ 6: พัฒนาระบบฟอร์มแจ้งเคลมสินค้าชำรุดพร้อม Validation
นักศึกษาต้องเริ่มสร้าง Git Repository ใหม่ (New Git Project) สำหรับงานชิ้นนี้โดยเฉพาะ (ห้ามใช้ร่วมกับโฟลเดอร์หรือ Git งานเก่า) โดยพัฒนาแบบฟอร์มส่งข้อมูลแจ้งเคลมสินค้าชำรุด (Product Claim Form) ประกอบด้วยช่องข้อมูล: รหัสสินค้า (Serial Number), อีเมลผู้ติดต่อ, อาการชำรุด และระดับความเร่งด่วน โดยกำหนด Validation Rules ตรวจสอบความถูกต้องของข้อมูล พร้อมแสดงข้อความแจ้งเตือนสีแดงใต้ช่องกรอกเมื่อมีข้อผิดพลาด
เกณฑ์การตรวจประเมินผล:
- การเขียนกฎเกณฑ์ตรวจสอบValidation Rules ของ Serial Number, Email และฟิลด์บังคับกรอก
- การดึงข้อความแจ้งเตือนข้อผิดพลาดรายฟิลด์มาเรนเดอร์แสดงผลใต้ช่องกรอกError Rendering
- การเชื่อมต่อกับระบบฐานข้อมูลในการทำงานจริงได้อย่างสมบูรณ์20%
อาจารย์ผู้บรรยาย: ศุภมิตร จันทร์โทวงศ์สไลด์ที่ 18 / 19
สัปดาห์ที่ 6 • การตรวจสอบข้อมูลและการเชื่อมต่อฐานข้อมูล01-406-093-203 Laravel Course
ใบงานที่ 6: พัฒนาระบบฟอร์มแจ้งเคลมสินค้าชำรุดพร้อม Validation
นักศึกษาต้องเริ่มสร้าง Git Repository ใหม่ (New Git Project) สำหรับงานชิ้นนี้โดยเฉพาะ (ห้ามใช้ร่วมกับโฟลเดอร์หรือ Git งานเก่า) โดยพัฒนาแบบฟอร์มส่งข้อมูลแจ้งเคลมสินค้าชำรุด (Product Claim Form) ประกอบด้วยช่องข้อมูล: รหัสสินค้า (Serial Number), อีเมลผู้ติดต่อ, อาการชำรุด และระดับความเร่งด่วน โดยกำหนด Validation Rules ตรวจสอบความถูกต้องของข้อมูล พร้อมแสดงข้อความแจ้งเตือนสีแดงใต้ช่องกรอกเมื่อมีข้อผิดพลาด
เกณฑ์การตรวจประเมินผล:
- การเขียนกฎเกณฑ์ตรวจสอบValidation Rules ของ Serial Number, Email และฟิลด์บังคับกรอก
- การดึงข้อความแจ้งเตือนข้อผิดพลาดรายฟิลด์มาเรนเดอร์แสดงผลใต้ช่องกรอกError Rendering
- การเชื่อมต่อกับระบบฐานข้อมูลในการทำงานจริงได้อย่างสมบูรณ์20%
อาจารย์ผู้บรรยาย: ศุภมิตร จันทร์โทวงศ์สไลด์ที่ 19 / 19