اذهب إلى المحتوى
  • 0

مشكلة The PATCH method is not supported for route students/17/edit. Supported methods: GET, HEAD.

السؤال

نشر

السلام عليكم لماذا اثناء الضغط علي زر تعديل تظهر مشكلة تالية 

public function edit($id, Request $request)
    {
        $student = Student::findOrFail($id);
        return view('student.edit', ['student' => $student]);
    }
    public function update(Request $request, $id)
    {

        // Find the student by ID
        $student = Student::findOrFail($id);

        // Validate the input data
        $validatedData = $request->validate([
            'name_std' => 'required|string|max:255',
            'num_std' => 'required|string|max:255',
            'email_std' => 'required|email|max:255',
            'date_student' => 'required|date',
            'adress_std' => 'required|string|max:255',
            'phone' => 'required|string|max:20',
        ]);

        // Update the student's details
        $student->name = $validatedData['name_std'];
        $student->registration_number = $validatedData['num_std'];
        $student->email = $validatedData['email_std'];
        $student->date_of_birth = $validatedData['date_student'];
        $student->address = $validatedData['adress_std'];
        $student->phone = $validatedData['phone'];
        $student->save();

        // Return a success response
        return redirect()->route('student.index')->with('success', 'Student data updated successfully.');
    }

صفحة edit.blade.php

<form action="{{ route('students.edit', $student->id) }}" class="form-inline" method="POST">
        @csrf
        @method('patch')
        <div class="row">
            <div class="col-md-4 mb-3">
                <label for="name_std" class="form-label">اسم الطالب</label>
                <input type="text" class="form-control" id="name_std" name="name_std" placeholder=" اسم الطالب"
                    style="width:80%;" value="{{ $student->name_std }}">
            </div>
            <div class="col-md-4 mb-3">
                <label for="num_std" class="form-label">رقم القيد</label>
                <input type="text" class="form-control" id="num_std" name="num_std" placeholder="رقم القيد"
                    style="width:80%;" value="{{ $student->num_std }}">
            </div>
            <div class="col-md-4 mb-3">
                <label for="email_std" class="form-label">البريد الالكتروني</label>
                <input type="email" class="form-control" id="email_std" name="email_std" placeholder="البريد الالكتروني"
                    style="width:80%;" value="{{ $student->email_std }}">
            </div>
            <div class="col-md-4 mb-3">
                <label for="date_student" class="form-label">تاريخ الميلاد</label>
                <input type="date" class="form-control" id="date_student" name="date_student" style="width:80%;"
                    value="{{ $student->date_student }}">
            </div>
            <div class="col-md-4 mb-3">
                <label for="adress_std" class="form-label">العنوان</label>
                <input type="text" class="form-control" id="adress_std" name="adress_std" placeholder=" العنوان"
                    style="width:80%;" value="{{ $student->adress_std }}">
            </div>
            <div class="col-md-4 mb-3">
                <label for="phone" class="form-label">رقم الهاتف</label>
                <input type="text" class="form-control" id="phone" name="phone" placeholder="رقم الهاتف"
                    style="width:80%;" value="{{ $student->phone }}">
            </div>
        </div>
        <button type="submit" class="btn btn-primary">تعديل</button>
    </form>
<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\StudentController;
use Illuminate\Routing\Route as RoutingRoute;




Route::get('/student', [StudentController::class, 'index'])->name('/student');
Route::get('/student/create', [StudentController::class, 'create'])->name('/student/create');
Route::post('/student/create', [StudentController::class, 'store'])->name('/student/create');
Route::get('/students/{student}/edit', [StudentController::class, 'edit'])->name('students.edit');
Route::patch('/students/{student}/update', [StudentController::class, 'update'])->name('students.update');

 

1.png

2.png

Recommended Posts

  • 0
نشر
بتاريخ 12 دقائق مضت قال ايمن ميلاد:
action="{{ route('students.edit', $student->id) }}"

الخطأ هنا حيث أن هذا المسار من نوع get وهو المسار الخاص بإظهار form التعديل . والصحيح هو إستخدام مسار students.update الخاص بتعديل بيانات المستخدم وهو من نوع patch ويمكنك إستبدال الجزء السابق بالتالي :

action="{{ route('students.update', $student->id) }}"

وهذا سيحل المشكلة إن شاء الله.

  • 0
نشر
بتاريخ منذ ساعة مضت قال محمد عاطف17:

الخطأ هنا حيث أن هذا المسار من نوع get وهو المسار الخاص بإظهار form التعديل . والصحيح هو إستخدام مسار students.update الخاص بتعديل بيانات المستخدم وهو من نوع patch ويمكنك إستبدال الجزء السابق بالتالي :

action="{{ route('students.update', $student->id) }}"

وهذا سيحل المشكلة إن شاء الله.

يظهر خطا بعد الضغط علي زر تعديل 

Undefined variable $PATCH /students/27/update HTTP/1.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 Accept-Encoding: gzip, deflate, br, zstd Accept-Language: ar,en-US;q=0.9,en;q=0.8 Cache-Control: max-age=0 Connection: keep-alive Content-Length: 170 Content-Type: application/x-www-form-urlencoded Cookie: XSRF-TOKEN=eyJpdiI6IjBWTkMyYlZTZUZ5cVpVT0tIaXl2bVE9PSIsInZhbHVlIjoiMGJQdEN4a3hFOVREUjlhWE1tVmV2cmRLbnBPdXU0WTVMazNmcWtmRTB1RW9GZHhYWkxkTzRzYmpXYS80THVXZU9ZOHFuWUZyWFpqMisrMmZ4T2gzZWs0SUtMeFRVYVBRb2svV2FnbUN6cmpOdVVHTGFrYUo0cFdtbHpLbU9zYTciLCJtYWMiOiJjMGQ3YzkwMzM5MjFkNGExOWNiYjJmZjRmZDFkNDkwOWEwYmFhOTdiY2U4YzljMDRmN2ExZDkxMDAwMDRlODFhIiwidGFnIjoiIn0%3D; laravel_session=eyJpdiI6IlEwd0hhRkFGak9EenhicThQakpaUEE9PSIsInZhbHVlIjoiQllzVUZvN3BtdjlaQkQwM056aTliS2hlckYrZE5zM2tTQ2J6REp6SkszRmlNS0JmZDFGSjlUTVNrYy9PSitwMTNrS1k4V0FyZzhCMm80emxLVzZ0Ymdmd0xuMmJoN2pVTXNTYjNsR0s3UEZ3d2FYSU9XVjN4TEZLMEJLellpSE0iLCJtYWMiOiJmMzNjNDFhNjg1YTI2Y2MwOWI0ZmQ0ZDI2YWIyMDM2ZTU3MmEzM2JjZmRlOTMwMTVlYzFhZDI4MzFiYzQ0ZmZiIiwidGFnIjoiIn0%3D Host: 127.0.0.1:8000 Origin: http://127.0.0.1:8000 Referer: http://127.0.0.1:8000/students/27/edit Sec-Ch-Ua: "Not)A;Brand";v="99", "Google Chrome";v="127", "Chromium";v="127" Sec-Ch-Ua-Mobile: ?0 Sec-Ch-Ua-Platform: "Windows" Sec-Fetch-Dest: document Sec-Fetch-Mode: navigate Sec-Fetch-Site: same-origin Sec-Fetch-User: ?1 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Cookie: XSRF-TOKEN=41DWMOmUJVMomEHkA3zhzHNboxEatwQDwpQ8RPE7; laravel_session=0J6yFcsnJ2rkS3PcNDmv0iP2my6vXmaHQ4DYhFlR _token=41DWMOmUJVMomEHkA3zhzHNboxEatwQDwpQ8RPE7&_method=patch&name_std=hmed&num_std=222222&email_std=ahmed%40gmail.com&date_student=2222-02-22&adress_std=libya&phone=3333

 

  • 0
نشر
بتاريخ 57 دقائق مضت قال ايمن ميلاد:

يظهر خطا بعد الضغط علي زر تعديل 

Undefined variable $PATCH /students/27/update HTTP/1.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 Accept-Encoding: gzip, deflate, br, zstd Accept-Language: ar,en-US;q=0.9,en;q=0.8 Cache-Control: max-age=0 Connection: keep-alive Content-Length: 170 Content-Type: application/x-www-form-urlencoded Cookie: XSRF-TOKEN=eyJpdiI6IjBWTkMyYlZTZUZ5cVpVT0tIaXl2bVE9PSIsInZhbHVlIjoiMGJQdEN4a3hFOVREUjlhWE1tVmV2cmRLbnBPdXU0WTVMazNmcWtmRTB1RW9GZHhYWkxkTzRzYmpXYS80THVXZU9ZOHFuWUZyWFpqMisrMmZ4T2gzZWs0SUtMeFRVYVBRb2svV2FnbUN6cmpOdVVHTGFrYUo0cFdtbHpLbU9zYTciLCJtYWMiOiJjMGQ3YzkwMzM5MjFkNGExOWNiYjJmZjRmZDFkNDkwOWEwYmFhOTdiY2U4YzljMDRmN2ExZDkxMDAwMDRlODFhIiwidGFnIjoiIn0%3D; laravel_session=eyJpdiI6IlEwd0hhRkFGak9EenhicThQakpaUEE9PSIsInZhbHVlIjoiQllzVUZvN3BtdjlaQkQwM056aTliS2hlckYrZE5zM2tTQ2J6REp6SkszRmlNS0JmZDFGSjlUTVNrYy9PSitwMTNrS1k4V0FyZzhCMm80emxLVzZ0Ymdmd0xuMmJoN2pVTXNTYjNsR0s3UEZ3d2FYSU9XVjN4TEZLMEJLellpSE0iLCJtYWMiOiJmMzNjNDFhNjg1YTI2Y2MwOWI0ZmQ0ZDI2YWIyMDM2ZTU3MmEzM2JjZmRlOTMwMTVlYzFhZDI4MzFiYzQ0ZmZiIiwidGFnIjoiIn0%3D Host: 127.0.0.1:8000 Origin: http://127.0.0.1:8000 Referer: http://127.0.0.1:8000/students/27/edit Sec-Ch-Ua: "Not)A;Brand";v="99", "Google Chrome";v="127", "Chromium";v="127" Sec-Ch-Ua-Mobile: ?0 Sec-Ch-Ua-Platform: "Windows" Sec-Fetch-Dest: document Sec-Fetch-Mode: navigate Sec-Fetch-Site: same-origin Sec-Fetch-User: ?1 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Cookie: XSRF-TOKEN=41DWMOmUJVMomEHkA3zhzHNboxEatwQDwpQ8RPE7; laravel_session=0J6yFcsnJ2rkS3PcNDmv0iP2my6vXmaHQ4DYhFlR _token=41DWMOmUJVMomEHkA3zhzHNboxEatwQDwpQ8RPE7&_method=patch&name_std=hmed&num_std=222222&email_std=ahmed%40gmail.com&date_student=2222-02-22&adress_std=libya&phone=3333
 

 

هل قمت بتغير ال method في ال form إلي get ؟ 

من فضلك يرجي إرفاق صورة كاملة للخطأ وملفات المشروع إن أمكن.

  • 0
نشر

الان قمت بتغير دالة update 

 public function update(Request $request, $id)
    {

        $validatedData = $request->validate([
            'name_std' => 'required|string|max:255',
            'num_std' => 'required|integer',
            'email_std' => 'required|email|max:255',
            'date_student' => 'required|date',
            'adress_std' => 'required|string|max:255',
            'phone' => 'required|string|max:20',
        ]);

        try {
            
            $student = Student::findOrFail($id);

            
            $student->update($validatedData);


            return redirect()->route('/student');
        } catch (\Exception $e) {
            return redirect()->route('/student');
        }
    }

ماذا لو اريد عمل نظام تسجيل دخول بحيث يكون لدي اثنين user  طالب وادمن 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...