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

App\Http\Controllers\DayController::update(): Argument #2 ($day) must be of type App\Models\Day, string given

السؤال

نشر

App\Http\Controllers\DayController::update(): Argument #2 ($day) must be of type App\Models\Day, string given, called in C:\laragon\www\HabitsAndSkills\vendor\laravel\framework\src\Illuminate\Routing\Controller.php on line 54

    public function update(Request $request, Day $day)
    {
        
        $day->update([
            'done' => request()->has('done')
        ]);

        return back();
    }

 

 

Recommended Posts

  • 1
نشر

يجب أن يكون اسم المتغير الذي تستخدمه المسار المؤدي للتابع update بنفس اسم المتغير المستخدم في التابع update, مثلا لديك في التابع update المتغير $day , اذا يجب أن يكون في المسار اسمه {day} ايضا, تأكد من ذلك رجاء
اذا استمرت المشكلة أرجو منك ارفاق ملفات المشروع للمساعدة بشكل افضل

  • 0
نشر
بتاريخ 1 دقيقة مضت قال علي العبدالله:

Route::patch('/habits/{habit}/days/{day}', [DayController::class, 'update']);

هل هذا غير صحيح ؟

المسار يحتاج الى متغيرين , المتغير الاول habit والمسار الثاني day, أنت قمت بتمرير متغير واحد فقط, لذلك حاول تعديل الكود بما يتناسب مع المسار

  • 1
نشر
بتاريخ 1 دقيقة مضت قال علي العبدالله:

Route::patch('/habits/{habit}/days/{day}', [DayController::class, 'update']);

هل هذا غير صحيح ؟

من خلال المسار انت تُمرر مُتغيرين للدالة update احدهما habit و الثاني day لكن بما أن الدالة تستقبل معامل واحد day فإن قيمته هي قيمة المُتغير الأول في المسار يجب أن تكون الدالة بهذا الشكل:

public function update(Request $request, $habit ,Day $day)
  • 1
نشر
بتاريخ 2 دقائق مضت قال علي العبدالله:

Route::patch('/habits/{habit}/days/{day}', [DayController::class, 'update']);

هل هذا غير صحيح ؟

يجب إضافة التالي إلى الدالة update أي تصبح بهذا الشكل 

public function update(Request $request, Habit $habit, Day $day)
{
        
        $day->update([
            'done' => request()->has('done')
        ]);

        return back();
}

طبعا قوم بالتعويض عن Habit $habit, بالمودل الخاص بك. لأن دالة المسار يحتوي على متغيرين.

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...