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

خطأ 404 NOT FOUND في لارافل

معتز المشكلي

السؤال

الكود من صفحة المتحكم

public function edit()
    {
        //عرض الصفحة الشخصية الخاصة بتعديل البيانات
        $user = User::find(auth()->user()->id);
        return view('auth.profile',compact('user'));
    }

الكود من صفحة الويب 

oute::get('/', function () {
	if (Auth::check()) {
		return redirect('/home');
	}else{
		return view('Auth/login');
	}
});

Route::group(['middleware' => ['auth']], function() {
  
	Route::get('user/profile', [UserConroller::class, 'edit']);
	
  });

Auth::routes();

صورة الملف المقصود أدناه

مع ذلك لا تظهر صفحة الملف الشخصي لي لماذا؟

152.JPG

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

مرحبا معتز
لنعدل هذا السطر 

$user = User::find(auth()->user()->id);

ليكون كذلك

$user = User::find(auth()->id());

وأيضا هذا السطر 

oute::get('/', function () {
^^^^

لديك مشكلة في كتابة كلمة Route حيث انك نسيت حرف R
وأيضا لديك مشكلة في هذا السطر

	Route::get('user/profile', [UserConroller::class, 'edit']);
                                    ^^^^^^^^^

حاول تعديل كلمة UserController
حاول القيام بالتعديلات ثم حاول مرة أخرى
شكرا لك

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 9 دقائق مضت قال معتز المشكلي:

الكود من صفحة المتحكم


public function edit()
    {
        //عرض الصفحة الشخصية الخاصة بتعديل البيانات
        $user = User::find(auth()->user()->id);
        return view('auth.profile',compact('user'));
    }

الكود من صفحة الويب 


oute::get('/', function () {
	if (Auth::check()) {
		return redirect('/home');
	}else{
		return view('Auth/login');
	}
});

Route::group(['middleware' => ['auth']], function() {
  
	Route::get('user/profile', [UserConroller::class, 'edit']);
	
  });

Auth::routes();

صورة الملف المقصود أدناه

مع ذلك لا تظهر صفحة الملف الشخصي لي لماذا؟

152.JPG

  • ما تحتاج إلي أستخدم دالة ال find يمكن الحصول علي المستخدم من دالة user()
$user = auth()->user();
  • هذا الرابط محمي بال auth middleware أي لابد أن يقوم المستخدم بتسجيل الدخول لكي يستطيع الوصول إلي هذا الرابط
// الرابط محمي بال auth middleware
Route::group(['middleware' => ['auth']], function() {
  
	Route::get('user/profile', [UserConroller::class, 'edit']);
	
  });

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ الآن قال محمد أبو عواد:

مرحبا معتز
لنعدل هذا السطر 


$user = User::find(auth()->user()->id);

ليكون كذلك


$user = User::find(auth()->id());

وأيضا هذا السطر 


oute::get('/', function () {
^^^^

لديك مشكلة في كتابة كلمة Route حيث انك نسيت حرف R
وأيضا لديك مشكلة في هذا السطر


	Route::get('user/profile', [UserConroller::class, 'edit']);
                                    ^^^^^^^^^

حاول تعديل كلمة UserController
حاول القيام بالتعديلات ثم حاول مرة أخرى
شكرا لك

لم يحصل شيء لا زالت صفحة 404 NOT FOUND تظهر

 

UserConroller.rar

web.rar

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 5 دقائق مضت قال معتز المشكلي:

لم يحصل شيء لا زالت صفحة 404 NOT FOUND تظهر

 

UserConroller.rar

web.rar

مرحبا مجددا
هل يمكنك ارفاق ملفات المشروع؟
شكرا لك

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

يبدوا أن المشكلة فقط في تعريفك للـ Routes فلو كانت المشكلة في إظهار الview فسيتم رمي exception عن طريق ViewException من داخل المتحكم . فهذا يعني أن الطلب لا يصل أصلا إلى المتحكم و المشكلة فقط هي في سطر واحد .

Route::get('user/profile', [UserConroller::class, 'edit']);

وبالفعل فأنت تستخدم تعريفا من النسخة 8 من لارافل في حين أنك تستخدم لارافل 5 و تقوم بإستعمال سياق غير مدعم بعد (PHP callable syntax)  على هذا النحو : 

<?php 

use App\Http\Controllers\UserController;

..
Route::get('user/profile', [UserController::class, 'edit']); // غير مدعوم بعد 

في حين أنه في النسخ ما قبل 8.x يجب عليك تعريف الراوت على هذا النحو (string syntax) :

<?php 


Route::get('user/profile', 'UserController@edit'); 

و ستحل المشكلة بهذا .

ملاحظات : 

مثل ما شرح الزملاء فإنه يوجد لديك بعض الأخطاء يجب إصلاحها 

و ذلك في UserConroller تصبح UserController

و في oute تصبح Route 

و هذا :

<?php 

public function edit()
{
    
   # $user = User::find(auth()->user()->id); عوضا عن هذا 
   
   $user = auth()->user(); # هذا 
   
   /*
   * ولا داعي لتمرير المتغير يوزر أصلا 
   * بحيث يمكنك استعمال هذا المساعد 
   * auth()
   * بداخل ملفات الblade 
   */
   return view('auth.profile',compact('user'));
}

بعد ذلك , وكخطوات إضافية , تأكد أن تقوم بمحو الكاش عن طريق : 

php artisan route:clear

ثم تأكد أن الراوت موجود عن طريق : 

php artisan route:list

و أخير يمكنك التصفح إلى http://127.0.0.1:8000/user/profile كعضو مسجل و استعراض الصفحة . 

تم التعديل في بواسطة Adnane Kadri
إضافة معلومات
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ الآن قال محمد أبو عواد:

مرحبا مجددا
هل يمكنك ارفاق ملفات المشروع؟
شكرا لك

لكن لدي استفسار هل يتم استخدام إصدارات لا رافيل مختلفة لتعويد المتدرب على مختلف بيئات لا رافيل أرجوا التوضيح ؟

ملاحظة

من الجلي جدا أن المدرب يستخدم إصدارا اقدم من إصداري مما تسبب في إرباكي وقد قمت بمعالجة العديد من المشاكل منذ بدأ المسار دون أن أسأل فأنا لا أسأل إلا للضرورة لكي أتقدم في المسار وأكتسب المهارات بسرعة أرجو إن كان الإصدار من لا رافيل الذي يستخدمه المدرب قديما أن يتم تحديث كافة مسار إنستقرام حاسوب لأني كمتخرج سأعمل على ما عودتني عليه الأكادمية ولن أهتم للقديم وكذا سأتابع من حيث تركتني الأكادمية أي من الإصدار 8 وما بعده مشكله كهذه ربما حللتها بنفسي في المسار السابق ولكنها استعصت علي في هذا المسار (رغم تصحيح الأخطاء الإملائية التي نبهتوني عليها مشكورين) 

ملاحظة أخيرة 

كل مدرب (مع إحترامي لجمعيكم) ينصحنا بكتابة الكود بطريقة أفضل من المدرب الأساسي لماذا لا يتم إلزام المدرب الأساسي بكتابة الكود وفق أفضل النهج المطروحة 

وشكرا 

instagramwebapp.rar

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 11 دقائق مضت قال معتز المشكلي:

لكن لدي استفسار هل يتم استخدام إصدارات لا رافيل مختلفة لتعويد المتدرب على مختلف بيئات لا رافيل أرجوا التوضيح ؟

ملاحظة

من الجلي جدا أن المدرب يستخدم إصدارا اقدم من إصداري مما تسبب في إرباكي وقد قمت بمعالجة العديد من المشاكل منذ بدأ المسار دون أن أسأل فأنا لا أسأل إلا للضرورة لكي أتقدم في المسار وأكتسب المهارات بسرعة أرجو إن كان الإصدار من لا رافيل الذي يستخدمه المدرب قديما أن يتم تحديث كافة مسار إنستقرام حاسوب لأني كمتخرج سأعمل على ما عودتني عليه الأكادمية ولن أهتم للقديم وكذا سأتابع من حيث تركتني الأكادمية أي من الإصدار 8 وما بعده مشكله كهذه ربما حللتها بنفسي في المسار السابق ولكنها استعصت علي في هذا المسار (رغم تصحيح الأخطاء الإملائية التي نبهتوني عليها مشكورين) 

ملاحظة أخيرة 

كل مدرب (مع إحترامي لجمعيكم) ينصحنا بكتابة الكود بطريقة أفضل من المدرب الأساسي لماذا لا يتم إلزام المدرب الأساسي بكتابة الكود وفق أفضل النهج المطروحة 

وشكرا 

instagramwebapp.rar

مرحبا مجددا معتز
تم انجاز الدورة تقريبا عندما كان اصدار لارافيل الخامس, وضلت الأكاديمية تعرض الجديد من كل اصدار من خلال مشروع حقيقي, ربما لأنك في بداية المسار لم تلاحظ ذلك ولكن لارافيل الآن في الاصدار الثامن وتم عمل مشروع قبل شهر تقريبا من الآن ويستخدم فيه الاصدار الثامن ويتم توضيح فيه كل جديد , سوف تجده في مسار الدورة لذلك لا تقلق يتم تطوير المسار باستمرار

أنت تستخدم الاصدار الثامن من لارافيل, ولا انصح باستخدامه الآن لأن تعريف المسارات فيه يختلف عن الاصدارات القديمة وأيضا هناك بعض الاختلافات التي سوف تزعجك وتربكك, لذلك أنصح أن تقوم بحذف المشروع الذي تعمل عليه وأن تقوم بانشاء مشروع يكون اصدار لارافيل فيه السابع أو أقل من ذلك, لكن لا تقلق سوف يتم شرح ما الجديد في الاصدار الثامن من خلال المسار

يمكنك انشاء مشروع لارافيل من الاصدار السابع من خلال الأمر الآتي

composer create-project --prefer-dist laravel/laravel:^7.0 blog
                                                           ^^^^^

يمكنك تغيير كلمة blog باسم المشروع الذي تريده
شكرا لك

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 31 دقائق مضت قال معتز المشكلي:

لكن لدي استفسار هل يتم استخدام إصدارات لا رافيل مختلفة لتعويد المتدرب على مختلف بيئات لا رافيل أرجوا التوضيح ؟

ملاحظة

من الجلي جدا أن المدرب يستخدم إصدارا اقدم من إصداري مما تسبب في إرباكي وقد قمت بمعالجة العديد من المشاكل منذ بدأ المسار دون أن أسأل فأنا لا أسأل إلا للضرورة لكي أتقدم في المسار وأكتسب المهارات بسرعة أرجو إن كان الإصدار من لا رافيل الذي يستخدمه المدرب قديما أن يتم تحديث كافة مسار إنستقرام حاسوب لأني كمتخرج سأعمل على ما عودتني عليه الأكادمية ولن أهتم للقديم وكذا سأتابع من حيث تركتني الأكادمية أي من الإصدار 8 وما بعده مشكله كهذه ربما حللتها بنفسي في المسار السابق ولكنها استعصت علي في هذا المسار (رغم تصحيح الأخطاء الإملائية التي نبهتوني عليها مشكورين) 

ملاحظة أخيرة 

كل مدرب (مع إحترامي لجمعيكم) ينصحنا بكتابة الكود بطريقة أفضل من المدرب الأساسي لماذا لا يتم إلزام المدرب الأساسي بكتابة الكود وفق أفضل النهج المطروحة 

وشكرا 

instagramwebapp.rar

قمت بتحميل الكود وفحصه تبين وجود خطاء في اسم ال controller

// هنا يوجد خطاء في اسم UserConroller
Route::group(['middleware' => ['auth']], function() {
  
	Route::get('user/profile', [UserConroller::class, 'edit']);
	
});

// فقط قم بتعديل اسم ال controller => UserConroller
Route::group(['middleware' => ['auth']], function() {

	Route::get('user/profile', [UserConroller::class , 'edit']);

});

وبعد تصليح هذا الخطاء هناك خطاء اخر في ملف profile.blade.php وهي أن دالة asser غير موجوده والمفترض أن تكون asset وتاخذ ب paramater من نوع string

<img src="{{asset('images/avatar' . $user->avatar)}}" class="w3-cercle" style="size: 255px">

 

تم التعديل في بواسطة محمد صقر3
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 18 دقائق مضت قال معتز المشكلي:

لكن لدي استفسار هل يتم استخدام إصدارات لا رافيل مختلفة لتعويد المتدرب على مختلف بيئات لا رافيل أرجوا التوضيح ؟

ملاحظة

من الجلي جدا أن المدرب يستخدم إصدارا اقدم من إصداري مما تسبب في إرباكي وقد قمت بمعالجة العديد من المشاكل منذ بدأ المسار دون أن أسأل فأنا لا أسأل إلا للضرورة لكي أتقدم في المسار وأكتسب المهارات بسرعة أرجو إن كان الإصدار من لا رافيل الذي يستخدمه المدرب قديما أن يتم تحديث كافة مسار إنستقرام حاسوب لأني كمتخرج سأعمل على ما عودتني عليه الأكادمية ولن أهتم للقديم وكذا سأتابع من حيث تركتني الأكادمية أي من الإصدار 8 وما بعده مشكله كهذه ربما حللتها بنفسي في المسار السابق ولكنها استعصت علي في هذا المسار (رغم تصحيح الأخطاء الإملائية التي نبهتوني عليها مشكورين) 

ملاحظة أخيرة 

كل مدرب (مع إحترامي لجمعيكم) ينصحنا بكتابة الكود بطريقة أفضل من المدرب الأساسي لماذا لا يتم إلزام المدرب الأساسي بكتابة الكود وفق أفضل النهج المطروحة 

وشكرا 

instagramwebapp.rar

مرحباً معتز،

يوجد لديك خطأ في تعريف المتحكم:

class UserConroller extends Controller

// الصواب
class UserController extends Controller

في صفحة العرض profile يوجد خطأ أيضاً:

<img src="{{asser(images/avatar).$user->avatar}}" class="w3-cercle" style="size: 255px">

{{-- الصواب --}}
<img src='{{asset("images/avatar/$user->avatar")}}' class="w3-cercle" style="size: 255px">

كما أنك في حالة إنشاء مستخدم جديد سيأخذ الصورة default.png لكن إسم الصورة لديك في المجلد هو avatar.png يجب تغييرها لنفس الإسم حتى تظهر الصورة الإفتراضية في حالة عدم وضع صورة.

ملاحظة: هذا القسم هو للأسئلة العامة و ليس لأسئلة الدورات فإن واجهتك أي مشكلة أو إستفسار يُستحسن طرحه أسفل الدرس و سيُتابع معك المدربين هناك.

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

كما أن معالجة الأخطاء شيء مهم و هي ما ستزيد في خبرتك و تطوير مستواك.

بالتوفيق.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

شكرا 

بتاريخ الآن قال عبود سمير:

مرحباً معتز،

يوجد لديك خطأ في تعريف المتحكم:


class UserConroller extends Controller

// الصواب
class UserController extends Controller

في صفحة العرض profile يوجد خطأ أيضاً:


<img src="{{asser(images/avatar).$user->avatar}}" class="w3-cercle" style="size: 255px">

{{-- الصواب --}}
<img src='{{asset("images/avatar/$user->avatar")}}' class="w3-cercle" style="size: 255px">

كما أنك في حالة إنشاء مستخدم جديد سيأخذ الصورة default.png لكن إسم الصورة لديك في المجلد هو avatar.png يجب تغييرها لنفس الإسم حتى تظهر الصورة الإفتراضية في حالة عدم وضع صورة.

ملاحظة: هذا القسم هو للأسئلة العامة و ليس لأسئلة الدورات فإن واجهتك أي مشكلة أو إستفسار يُستحسن طرحه أسفل الدرس و سيُتابع معك المدربين هناك.

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

كما أن معالجة الأخطاء شيء مهم و هي ما ستزيد في خبرتك و تطوير مستواك.

بالتوفيق.

شكرا

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 16 ساعات قال معتز المشكلي:

لكن لدي استفسار هل يتم استخدام إصدارات لا رافيل مختلفة لتعويد المتدرب على مختلف بيئات لا رافيل أرجوا التوضيح ؟

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

عادة لا يتطلب تحديث إطار عمل العديد من التغييرات لكن بالتحديد في إصدار لارافل 8 تم تغيير طريقة تحديد المسارات routes وهذا سوف يسبب اختلاف بطريقة كتابة الشيفرة.

كحل للمشكلة يمكن تثبيت الإصدار نفسه الذي يعمل عليه المدرب من أول درس في الدورة و سيكون كل شيئ على مايرام أما بعد نصف المشروع سيكون التراجع صعبا مع الأخذ بالحسبان كل المكتبات التي تم تحميلها بإصدارات حديثة تتماشى مع إصدار لارافل 8 مثلا.

في حياتك العملية ستعترضك أفكار و تبحث عن حلول و ستجدها مكتوبة بإصدارات مختلفة كما من الممكن أن يطلب منك تعديل مشروع قديم مبنى بنسخة منخفضة مثلا 5.

وجود تنوع في إصدارات التدريب في الأكاديمية مفيد وعليك اعتبار نفسك قد تدربت أكثر و فهمت الفرق الجوهري الأهم بين الإصدارين ما قبل 8 و 8 نفسه.

يتم أرشفة المسارات القديمة في الأكاديمية عندما ترى الإدارة أن دراستها غير مفيدة و تم تعويض أفكارها بالسلسلة الجديدة ومع ذلك يسمح للطلاب بدراسة الأرشيف وهذا أمر اختياري للطالب.

وكإضافة، بعد اشتراكك بالأكاديمية ستتاح لك جميع التحديثات و سوف تبقى متجددة دوما، و سيطرأ تعديلات في المستقل و تتغير طريقة كتابة لارافل 10 مثلا، أي سوف تقدم الأكاديمية مشاريع جديدة بإصدارات أحدث.. فلكي تواكب أنت التطورات سيتوجب عليك دراسة الإصدار الأحدث دوما لتبقى مواكبا للتغيرات إن درستها من التوثيق الرسمي أو اعتمدت محددا على شرح الأكاديمية فهو اختياري.

أنت طالب مجتهد و مثابر كل الاحترام أحسنت.

بالتوفيق

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...