Monday, 2 December 2024

DAY18 แก้ให้ form admin update

20 Nov 2024
16
luminox watches

มาถึงวันที่ 18 กันแล้วนะครับ วันนี้เราจะมาแก้ฟอร์มเดิมให้ update ข้อมูลลงไปได้ ดังนั้นไปแก้ หน้าเดิมก่อน

 

<form method=”POST” action=”{{route(‘admin.profile.store’)}}” class=”forms-sample” enctype=”multipart/form-data”>
@csrf

คำอธิบายโค้ด

  1. <form method="POST">
    • กำหนดให้ฟอร์มใช้ HTTP Method แบบ POST ซึ่งมักใช้สำหรับการส่งข้อมูลสำคัญ เช่น การสร้างหรือแก้ไขข้อมูลในฐานข้อมูล
  2. action="{{route('admin.profile.store')}}"
    • กำหนดปลายทางของฟอร์มโดยใช้ฟังก์ชัน route() ของ Laravel ซึ่งใช้สำหรับสร้าง URL ของเส้นทาง (Route) ที่ระบุชื่อ
    • ในตัวอย่างนี้ เส้นทางที่ระบุชื่อคือ admin.profile.store ซึ่งอาจกำหนดไว้ใน web.php
  3. route::post(‘/admin/profile/store’, [AdminController::class, ‘AdminProfileStore’])->name(‘admin.profile.store’);
  4. เส้นทางนี้จะชี้ไปที่เมธอด 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ที
ถ้า error ให้สั่ง php artisan optiomize สัก1ที

ถ้า error ให้สั่ง php artisan optiomize สัก1ที

จากนั้นก็ลอง update ข้อมูลและรูปภาพดู เย้! ทำได้แล้วววว

update form admin profile

update form admin profile

Thanat Sirikitphattana

แบ่งปันกัน เราอยู่กันไม่เกิน 100 ปีหรอกครับ
สุดท้ายก็ทิ้งไว้ที่โลก จะคงเหลือไว้แต่คุณงามความดีที่ให้ระลึกถึงกันครับ

Follow Us / Thanat Sirikitphattana