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

السؤال

نشر

أواجه المُشكلة التالية أريد عرض صفحة إنشاء موضوع جديد لكن الصفحة لا تظهر و يظهر خطأ 404 مع أن الصفحة موجودة و المسار الخاص بها موجود ضمن الملف web.php :

Route::get('/threads/create', [ThreadController::class, 'create']);

هل من حل لهذه المُشكلة.

Recommended Posts

  • 0
نشر

 قد تحدث المُشكلة بسبب أحد النقاط التالية:

  • أنك تقوم بتصفح الرابط بشكل خاطئ أي أن المسار الذي تُحاول الوصول إليه فعلاً غير موجود. فيجب التأكد من هذه النُقطة أولاً 
  • أن المسار الذي تحاول الوصول إليه مُتضارب مع مسار آخر موجود فوقه في الترتيب فإن كان لديك مسار آخر بالشكل التالي: 
Route::get('/threads/{thread}', [ThreadController::class, 'show']);
Route::get('/threads/create', [ThreadController::class, 'create']);

و كنت تُحاول الوصول إلى الرابط threads/create/ فلن يتم أخذ المسار الثاني بعين الإعتبار بل سيتم في هذه الحالة تنفيذ المسار الأول و تمرير الكلمة create كمُعامل للتابع show. لذلك إن أردت أن يكون المسار الخاص بالتابع create له اولوية ضعه فوق المسار الذي به مُعامل بهذا الشكل:

Route::get('/threads/create', [ThreadController::class, 'create']);
Route::get('/threads/{thread}', [ThreadController::class, 'show']);
  • أن التطبيق الخاص بك يعمل بالcache أي أن المسارات مُخزنة في الcache فأي مسار جديد تقوم بإضافته لا يتم الإنتباه له و في هذه الحالة يجب عليك عمل clear لل cache الخاص بالمسارات بتنفيذ أحد هذه الأوامر:
php artisan route:clear

// او

php artisan optimize:clear

حيث أن الأمر الأخير يقوم بعمل clear لعدة أشياء ليس المسارات فحسب بل صفحات العرض و الإعدادات وما إلى ذلك.

  • 0
نشر

دائما تأكد من logs عن طريق المسار التالي storage/logs تجد ملفات logs بتاريخ اليوم أو ملف كامل لجميع logs ويمكنك فتح الملفات و النظر بسبب المشكلة ممكن ان تكون قد أخطأت في كتابة اسم الcontroller في ملف المخصص للمسارات مثل 

Route::get('/home', 'HomeController@index')->name('home');

ممكن أن تكون قد أخطأت في كتابة اسم المسار مثل

 /home 

أو أخطأت في كتابة اسم controller مثل HomeController. أو ايضا تفقد الدالة name التي تعطي اسم المسار  و في حالة الكود أعلاه تفقد اسم المسار و طريقة التوجيه المستخدمة فمثلا ممكن ان نوجه صفحة عن طريق 

<a href="{{ route('home') }}">الصفحة الرئيسية</a>

واخيرا قم بتنفيذ 

php artisan cache:clear
php artisan route:clear
php artisan config:clear
php artisan view:clear

أو يمكنك عن طريق المتصفح بحذف الكاش بوضع 

Route::get('/cache-clear', function() {
    Artisan::call('cache:clear');
});

في ملف web.php  ومن ثم في المتصفح قم بفتح المسار

/cache-clear

 

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...