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

السؤال

نشر

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

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

 

  • 0
نشر (معدل)

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

 

 

 

 

 

 

 

2.png

تم التعديل في بواسطة ايمن ميلاد

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...