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

السؤال

نشر

السلام عليكم ممكن حل مشكلة لدي كود تالي لتعديل بيانات 

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');

صفحة edit.blade.php 

@extends('layouts.master');
@section('title')
    ادخال بيانات
@endsection
@section('title_page1')
    الطلبة
@endsection
@section('title_page2')
    ادخال بيانات الطلبة
@endsection
@section('content')
    <style>
        label,
        button {
            margin-top: 1cm;
        }

        h5,
        button {
            margin-right: 1cm
        }

        label {
            text-align: right;
            display: inline-block;
            width: 140px;
        }
    </style>
    <form action="{{ route('/student/update', $student->id) }}" class="form-inline" method="POST">
        @csrf
        @method('PUT')
        <div class="row">
            <div class="col-sm-4 tight-gutter">
                <label>اسم الطالب </label>
                <input type="text" class="form-control" name="name_std" style="width: 100%;" placeholder=" اسم الطالب"
                    value="{{ $student->name_std }}" </div>
                <div class="col-sm-4 tight-gutter">
                    <label>رقم القيد</label>
                    <input type="text" class="form-control" name="num_std" style="width: 100%;" placeholder="رقم القيد"
                        value="{{ $student->num_std }}">

                </div>
                <div class="col-sm-4 tight-gutter">
                    <label> البريد الالكتروني</label>
                    <input type="email" class="form-control" name="email_std" style="width: 100%;"
                        placeholder="البريد الالكتروني " value="{{ $student->email_std }}">
                </div>
                <div class="col-sm-4 tight-gutter">
                    <label> تاريخ الميلاد</label>
                    <input type="date" class="form-control" name="date_student" style="width: 100%;"
                        value="{{ $student->date_student }}">
                </div>
                <div class="col-sm-4 tight-gutter">
                    <label> العنوان</label>
                    <input type="text" class="form-control" name="adress_std" style="width: 100%;" placeholder=" العنوان"
                        value="{{ $student->adress_std }}">
                </div>
                <div class="col-sm-4 tight-gutter">
                    <label>رقم الهاتف</label>
                    <input type="text" class="form-control" name="phone" style="width: 100%;" placeholder="رقم الهاتف"
                        value="{{ $student->phone }}">
                </div>
            </div>
            <button type="submit" class="btn btn-primary">تعديل</button>
    </form>
@endsection
@section('scripts')
    <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"
        integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous">
    </script>
    <script src="https://cdn.jsdelivr.net/npm/popper.js@1.12.9/dist/umd/popper.min.js"
        integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous">
    </script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/js/bootstrap.min.js"
        integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous">
    </script>
@endsection

صفحة controller 

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

        if ($request->isMethod('post') || $request->isMethod('put')) {
            $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',
            ]);

            $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 redirect()->route('student.index')->with('success', 'Student data updated successfully.');
        }
    }

 

Recommended Posts

  • 0
نشر

وعليكم السلام ورحمة الله وبركاته.

يوجد لديك خطأين في ملف edit.blade.php  :

بتاريخ 12 ساعة قال ايمن ميلاد:
action="{{ route('/student/update', $student->id) }}"

الخطأ هنا يجب توفير إسم ال route وليس المسار والحل هو التالي :

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

الخطأ الثاني سيظهر لك عند إرسال ال form حيث أنك حددت نوع المسار patch ولكنك ترسل put 

بتاريخ 12 ساعة قال ايمن ميلاد:
        @method('PUT')

لذلك الحل هو إستبدال السطر السابق ب patch أو تغير نوع الطلب في web.php  إلى put و يمكنك إستبدال السطر السابق بالكود التالي :

@method('PATCH')

 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...