มาถึงวันที่ 18 กันแล้วนะครับ วันนี้เราจะมาแก้ฟอร์มเดิมให้ update ข้อมูลลงไปได้ ดังนั้นไปแก้ หน้าเดิมก่อน
<form method=”POST” action=”{{route(‘admin.profile.store’)}}” class=”forms-sample” enctype=”multipart/form-data”>
@csrf
@csrf
คำอธิบายโค้ด
<form method="POST">
- กำหนดให้ฟอร์มใช้ HTTP Method แบบ
POST
ซึ่งมักใช้สำหรับการส่งข้อมูลสำคัญ เช่น การสร้างหรือแก้ไขข้อมูลในฐานข้อมูล
- กำหนดให้ฟอร์มใช้ HTTP Method แบบ
action="{{route('admin.profile.store')}}"
- กำหนดปลายทางของฟอร์มโดยใช้ฟังก์ชัน
route()
ของ Laravel ซึ่งใช้สำหรับสร้าง URL ของเส้นทาง (Route) ที่ระบุชื่อ - ในตัวอย่างนี้ เส้นทางที่ระบุชื่อคือ
admin.profile.store
ซึ่งอาจกำหนดไว้ในweb.php
- กำหนดปลายทางของฟอร์มโดยใช้ฟังก์ชัน
-
route::post(‘/admin/profile/store’, [AdminController::class, ‘AdminProfileStore’])->name(‘admin.profile.store’);
- เส้นทางนี้จะชี้ไปที่เมธอด
store
ใน AdminController
class="forms-sample"
- เพิ่มคลาส CSS ให้ฟอร์ม เพื่อจัดรูปแบบด้วยสไตล์เฉพาะ เช่น ขนาดช่องข้อความหรือสีของปุ่ม
enctype="multipart/form-data"
- ระบุว่าฟอร์มนี้รองรับการส่งข้อมูลประเภทไฟล์ เช่น รูปภาพหรือเอกสาร
- การตั้งค่า
enctype="multipart/form-data"
จำเป็นเมื่อมี<input type="file">
อยู่ในฟอร์ม
@csrf
- ใช้ Laravel Blade Directive เพื่อเพิ่ม CSRF Token (Cross-Site Request Forgery)
- เป็นส่วนสำคัญที่ช่วยป้องกันการโจมตี CSRF โดยเพิ่มโทเค็นที่ต้องตรวจสอบในทุกการส่งฟอร์ม
แล้วมาเพิ่มฟังชั่นที่ AdminController.php
public function AdminProfileStore(Request $request){
$id =Auth::user()->id;
$data =User::find($id);
$data->username = $request->username;
$data->name = $request->name;
$data->email = $request->email;
$data->phone = $request->phone;
$data->address = $request->address;
if($request->file(‘photo’)){
$file=$request->file(‘photo’);
$filename= date(‘YmdHi’).$file->getClientOriginalName();
$file->move(public_path(‘upload/admin_images’),$filename);
$data[‘photo’]=$filename;
}
$data->save();
return redirect()->back();
} // end Method
ถ้า error ให้สั่ง php artisan optiomize สัก1ที
จากนั้นก็ลอง update ข้อมูลและรูปภาพดู เย้! ทำได้แล้วววว
แบ่งปันกัน เราอยู่กันไม่เกิน 100 ปีหรอกครับ
สุดท้ายก็ทิ้งไว้ที่โลก จะคงเหลือไว้แต่คุณงามความดีที่ให้ระลึกถึงกันครับ
Follow Us / Thanat Sirikitphattana