ඕනෑම වෙබ් යෙදුමක ආරක්ෂාව සහ දත්තවල නිවැරදිභාවය (data integrity) සඳහා පරිශීලක உள்ளீடுகளை சரிபார்த்தல் (user input validation) ඉතා වැදගත් වේ. Laravel මගින් මෙම ක්රියාවලිය ඉතා සරල සහ පහසු කර ඇත.
1. Validation Rules යෙදීම
පරිශීලකයෙකු පෝරමයක් submit කළ විට, දත්ත ගබඩා කිරීමට පෙර එම දත්ත අපේක්ෂිත ආකෘතියට (format) ගැලපේදැයි පරීක්ෂා කළ යුතුය. උදාහරණයක් ලෙස, 'නම' πεδίο κενό නොවිය යුතුය, 'ඊමේල්' πεδίο έγκυρη ඊමේල් ලිපිනයක් විය යුතුය. `StudentController.php` ගොනුවේ `store` method එකට validation එක් කරමු.
// StudentController.php -> store() method
public function store(Request $request)
{
// Validation rules අර්ථ දැක්වීම
$validated = $request->validate([
'name' => 'required|string|max:255',
'email' => 'required|email|unique:students',
'phone' => 'required|string|max:20',
'course' => 'required|string|max:100',
]);
// Validation සාර්ථක නම් පමණක් දත්ත ගබඩා වේ
$student = new Student;
$student->name = $validated['name'];
$student->email = $validated['email'];
$student->phone = $validated['phone'];
$student->course = $validated['course'];
$student->save();
return redirect('/students')->with('status', 'ශිෂ්ය දත්ත සාර්ථකව ඇතුළත් කරන ලදී!');
}
ඉහත `required` මගින් πεδίο κενό විය නොහැකි බවත්, `email` මගින් එය έγκυρη ඊමේල් ලිපිනයක් විය යුතු බවත්, `unique:students` මගින් එම ඊමේල් ලිපිනය `students` වගුවේ දැනටමත් නොතිබිය යුතු බවත් තහවුරු කරයි. ఇదే ආකාරයට `update` method එකටද validation යෙදිය යුතුය.
2. Validation දෝෂ පණිවිඩ පෙන්වීම
Validation අසාර්ථක වුවහොත්, Laravel ස්වයංක්රීයව පරිශීලකයා නැවත පෙර පිටුවටම යොමු කරන අතර, දෝෂ පණිවිඩ `$errors` නම් විචල්යයක ගබඩා කරයි. මෙම පණිවිඩ `create.blade.php` සහ `edit.blade.php` යන views වල පෙන්වමු.
`create.blade.php` ගොනුව විවෘත කර, 'නම' සඳහා වන input πεδίο එකට යටින් මෙම කේතය එක් කරන්න.
<!-- create.blade.php -->
<div class="mb-3">
<label for="name" class="form-label">නම</label>
<input type="text" class="form-control" id="name" name="name">
@error('name')
<div class="text-danger mt-1">{{ $message }}</div>
@enderror
</div>
@error('name') directive එක මගින් 'name' πεδίο එකට අදාළව දෝෂයක් ඇත්නම් පමණක් එම කොටස පෙන්වයි. `$message` විචල්යය තුළ අදාළ දෝෂ පණිවිඩය අඩංගු වේ. අනෙකුත් සියලුම input πεδία සඳහාද මෙම ක්රමයම අනුගමනය කරන්න.
3. වලංගු නොවන මාර්ග (Invalid Routes) හැසිරවීම (404 Page)
පරිශීලකයෙකු ඔබගේ යෙදුමේ නොපවතින URL එකකට (උදා: `.../non-existent-page`) පිවිසීමට උත්සාහ කළහොත්, Laravel ස්වයංක්රීයවම "404 Not Found" දෝෂ පිටුවක් පෙන්වයි. මෙය පෙරනිමියෙන්ම (by default) ක්රියාත්මක වන නිසා ඔබට ඒ සඳහා අමතරව කිසිවක් කිරීමට අවශ්ය නැත.
නියමයි! 💪 දැන් ඔබගේ යෙදුම වඩාත් ශක්තිමත් සහ ආරක්ෂිතයි. අවසාන ඒකකයේදී, අපි මෙම සම්පූර්ණ CRUD පද්ධතිය සමාලෝචනය කර, කුඩා වැඩිදියුණු කිරීම් කිහිපයක් සිදු කරමු.