අපගේ CRUD (Create, Read, Update, Delete) චක්රයේ අවසාන සහ සරලම කොටස වන "Delete" ක්රියාවලිය දැන් ක්රියාත්මක කරමු. මෙහිදී, ශිෂ්ය දත්ත පේළියක් දත්ත සමුදායෙන් සම්පූර්ණයෙන්ම ඉවත් කිරීමට අවශ්ය පියවර සකස් කරමු.
1. ශිෂ්ය ලැයිස්තුවට "Delete" බොත්තම එක් කිරීම
`resources/views/index.blade.php` ගොනුව විවෘත කර, "Actions" තීරුව තුළ, "Edit" බොත්තම пору "Delete" බොත්තමක් එක් කරන්න. දත්ත මකා දැමීම සඳහා අපි HTML පෝරමයක් (form) භාවිතා කරමු. ምክንያදයත්, DELETE ඉල්ලීම් (requests) ආරක්ෂිතව යැවිය යුත්තේ සබැඳි (links) හරහා නොව පෝරම් හරහාය.
<!-- index.blade.php -->
<td>
<a href="/edit/{{ $student->id }}" class="btn btn-warning btn-sm">Edit</a>
<!-- Delete Form -->
<form action="/delete/{{ $student->id }}" method="POST" class="d-inline">
@csrf
@method('DELETE')
<button type="submit" class="btn btn-danger btn-sm">Delete</button>
</form>
</td>
@method('DELETE') directive එක මගින් Laravel වෙත දන්වන්නේ මෙය සාමාන්ය POST ඉල්ලීමක් නොව DELETE ඉල්ලීමක් බවයි. d-inline class එක මගින් බොත්තම් දෙක එකම පේළියේ තබා ගනී.
2. Controller හි `destroy` Method එක සෑදීම
දැන් `app/Http/Controllers/StudentController.php` ගොනුවට ගොස්, ලබා දෙන ID එකට අදාළ ශිෂ්ය දත්ත සොයාගෙන එය දත්ත සමුදායෙන් ඉවත් කිරීමට `destroy` නමින් නව ශ්රිතයක් (method) එක් කරන්න.
// StudentController.php
public function destroy($id)
{
// ID එකට අදාළ student record එක සොයාගැනීම
$student = Student::find($id);
// එම record එක මකා දැමීම
$student->delete();
// සාර්ථක පණිවිඩයක් සමඟින් redirect කිරීම
return redirect('/students')->with('status', 'ශිෂ්ය දත්ත සාර්ථකව මකා දමන ලදී!');
}
3. Route එක සැකසීම
අවසාන වශයෙන්, `routes/web.php` ගොනුවට ගොස් දත්ත මකා දැමීමේ ක්රියාවලිය සඳහා වන route එක එක් කරන්න.
// web.php
Route::delete('/delete/{id}', [StudentController::class, 'destroy']);
4. (Optional) මකා දැමීමට පෙර තහවුරු කිරීම
පරිශීලකයෙකු අත්වැරදීමකින් "Delete" බොත්තම ක්ලික් කිරීම වැළැක්වීමට, JavaScript confirmation dialog box එකක් එක් කිරීම ඉතා හොඳ පුරුද්දකි. `index.blade.php` හි ඇති Delete form එකට `onsubmit` attribute එකක් එක් කරන්න.
<!-- index.blade.php -->
<form action="/delete/{{ $student->id }}" method="POST" class="d-inline"
onsubmit="return confirm('මෙම ශිෂ්ය දත්ත මකා දැමීමට ඔබට විශ්වාසද?');">
@csrf
@method('DELETE')
<button type="submit" class="btn btn-danger btn-sm">Delete</button>
</form>
දැන් යමෙකු "Delete" බොත්තම ක්ලික් කළ විට, "මෙම ශිෂ්ය දත්ත මකා දැමීමට ඔබට විශ්වාසද?" යනුවෙන් පණිවිඩයක් සහිත pop-up box එකක් දිස්වනු ඇත. "OK" ක්ලික් කළහොත් පමණක් දත්ත මකා දැමීම සිදුවේ.
සුභ පැතුම්! 🎉 ඔබ දැන් Laravel භාවිතයෙන් සම්පූර්ණ CRUD යෙදුමක් සාර්ථකව නිර්මාණය කර ඇත. ඊළඟ ඒකකයේදී, පරිශීලක உள்ளீடுகளை சரிபார்த்தல் (validation) மற்றும் பிழைகளை கையாளுதல் (error handling) பற்றி பார்ப்போம்.