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

محمد_عاطف

الأعضاء
  • المساهمات

    9390
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    134

كل منشورات العضو محمد_عاطف

  1. إذا هناك مشكلة في ملف web.php حيث يتم توجيه العنوان إلى مكان أخر غير StudentController قم بتنفيذ الأمر التالي : php artisan optimize:clear والمحاولة مرة أخري و إذا ما زالت المشكلة موجودة فيجب إرفاق مجلد المشروع
  2. إذا أعتقد ان الكود لا يدخل في StudentController . قم بإضافة سطر dd في دالة index هكذا : public function index() { // $students = student::all(); dd($students); return view('student.index', compact('students')); } وأخبرني بالنتيجة
  3. هل تم حل الخطأ أ, تغير الخطأ إلى خطأ آخر ؟ وأيضا هل قمت بإستيراد النموذج student أم هذا هو كود ملف ال controller كاملا ؟
  4. الخطأ أنك تقوم بإستخدام نفس المتغير في حلقة foreach وهذا خطأ حيث أن foreach لن تعرف أي متغير تقصده وتريد إستخدامه . ولحل تلك المشكلة نتبع الخطوات التالية : أولا يجب عليك تمرير المتغير من ال controlles بإسم students هكذا : $students = student:all(); return view('student.index',compact('students')); وفي ملف ال blade يكون كالتالي : @foreach ($students as $student)
  5. هل يمكنك إرسال صورة لتنفيذك للملف ؟ إذا كنت قد قمت بتنفيذ الأمر سابقا و بعد ذلك أضفت الأعمدة إلى نفس الملف فلن يتم إضافة أي شئ لأنه قد تم تسجيل أن هذا الملف تم تشغيله . يمكنك إستعمال الأمر التالي ولكن إحذر فهذا الأمر سيقوم بحذف قاعدة البيانات كاملة و إنشاءها من جديد مع حذف جميع البيانات بها . php artisan migrate:fresh أو يمكنك إنشاء ملف جديد وتقوم بوضع الأعمدة فيه وتنفيذ أمر migrate فقط
  6. يمكنك تنفيذ أمر migration كالتالي : php artisan migrate وذلك الأمر لتنفيذ ملفات ال migrations . ومن فضلك يفضل جعل كل سؤال منفصل عن الأخر وذلك لمساعدتك بشكل أفضل وحتي يستفاد الطلاب الأخرون أيضا من الإجابات
  7. يجب أن يكون السطر 10 كالتالي : Route::resource('student', StudentController::class); وتأكد من أن StudentController هو الإسم الصحيح للملف وإذا ما زال الخطأ موجود فأرسل صورة صفحة الخطأ كاملة
  8. الخطأ أنك تحاول إستخدام StudentController وهو غير موجود . وأعتقد أن الخطأ في ملف web.php حيث أنك قمت بتعريف المسار ووضعت له ال StudentController دون أن تقوم بإستدعاءه بواسطة use . من فضلك أرسل صورة المسار في ملف web.php وأيضا صورة صفحة الخطأ كاملة لنري أين المشكلة تحديدا .
  9. ستجد أسفل الدرس صندوق للتعليقات يمكنك التعليق هناك أسفل الدرس حيث هنا هو قسم الأسئلة العامة ولا نقوم بإجابة أسئلة الدورات هنا وذلك لمساعدتك بشكل أفضل
  10. وعليكم السلام ورحمة الله وبركاته . الأمر بسيط يمكنك مباشرة وضع القيمة في الصفحة التي تقوم بعرض ال form بها هكذا : <label for="gender">الجنس:</label> <select id="gender" name="gender"> <option value="10">ذكر</option> <option value="5">أنثى</option> </select> وهنا عند إرسال الطلب للخادم ستجد القيمة مباشرة في حقل gender ويمكنك وضعها مباشرة في قاعدة البيانات $gender = $_POST['gender']; هكذا ستجد أن المتغير gender سيحوي على القيمة 5 إذا إختار أنثي و10 إذا إختار ذكر
  11. ستجد أسفل الدرس صندوق للتعليقات يمكنك كتابة سؤالك هناك حيث هنا هو قسم الأسئلة العامة وذلك لمساعدتك بشكل أفضل.
  12. نحن هنا في موقع الأكاديمية لا نقوم بإجابة أسئلة الإختبارات ولكن يمكننا إعطائك الفكرة العامة ويمكنك تطبيقها وإخبارنا بالنتيجة . أولا يجب عليك إنشاء دالة والتي تقوم بأخذ مصفوفة و عدد العناصر في تلك المصفوفة وترتيب العنصر الحالي . وبداخل الدالة نقوم أولا بالتحقق من ترتيب العنصر الحالي يساوي عدد العناصر -1 حيث نريد أن نتحقق هل العنصر هو أخر رقم في المصفوفة أم لا وهذا هو شرط إيقاف ال recursion وإذا تحقق الشرط نقوم بإرجاع هذا العنصر . وبعد ذلك نستدعي الدالة مرة أخري وهذا هو ال recursion ولكن نقوم الآن بتمرير جميع المعاملات السابقة عدي العنصر الحالي نقوم بزيادته ب 1 حتي ننتقل للعنصر الذى يليه ونضعه في متغير. وأخيرا نقوم بإستدعاء الدالة max ونقارن بين المتغير السابق الذى يتم إرجاعه من ال recursion وبين العنصر الحالي . وهكذا سيتم المقارنة بال recursion وستبدا من العنصر الأخير والذى يسبقه وهكذا حتي نصل إلى بداية المصفوفة وبعد أخر تنفيذ لدالة ال recursion سيكون لدينا اكبر رقم في المصفوفة.
  13. بيانات الصور تعبر عن مجموعة الصور التي يتم استخدامها في سياق معين سواء كانت تحتوي على تسميات labeled لا unlabeled حيث أنه من الممكن أن تكون هناك صورة labeled و اخري لا unlabeled . الصور المسماة (labeled data): تتضمن صورا مع وجود تسميات أو علامات توضح محتوى الصور مثل تسميات لأجسام مختلفة في الصور مثل أشخاص أوحياوانات أو تصنيف لنوع الصورة (مثلاً: صورة لسيارة أو لشخص). بيانات الصور غير المسماة (unlabeled data): تشير إلى صور لا تحتوي على تسميات أو علامات وعادة ما تستخدم لأغراض التدريب على النماذج التي تعتمد على تعلم غير مشرف (unsupervised learning). في هذه الحالة، الهدف غالبا هو اكتشاف النماذج أو الهياكل في البيانات بدون وجود تسميات مسبقة. لذالك عندما نتحدث عن بيانات الصور يمكن أن تكون إما مسماة (labeled) إذا كانت تحتوي على تسميات أو غير مسماة (unlabeled) إذا كانت بدون تسميات.
  14. ستجد أسفل الدرس في نهاية الصفحة صندوق للتعليقات من فضلك قم بوضع سؤالك أسفل الدرس حيث هنا قسم الأسئلة العامة ولا نقوم بطرح الأسئلة الخاصة بالدورة هنا وذلك لمساعدتك بشكل أفضل.
  15. إن دورة علوم الحاسب توفر لك الأساسيات وتبدا معك م أبسط المفاهيم البرمجية إلى المفاهيم المتقدمة وأفضل الأساليب المتبعة في البرمجة. وتوصلك بك إلى مرحلة متقدمة من التعامل مع مختلف التقنيات مثل قواعد البيانات والخوارزميات والبرمجة كائنية التوجه OOP والعديد من الأشياء المهمة ويمكنك قراءة الإجابات التالية لوصف أكثر عن الدورة: أما بالنسبة لسؤالك بخصوص leetcode فإن بالفعل تعلم الخوارزميات المهمة مثل البحث الثنائي (Binary Search) وتقدير الوقت (Big O notation) يعد جزءا أساسيا من الاستعداد لحل مشاكل على منصات مثل LeetCode. هذه الخوارزميات لها تطبيقات واسعة في البرمجة وحل المشاكل الحسابية، وتعتبر أساسية للمطورين والمبرمجين في فهم الكفاءة والأداء الخوارزمي. باستيعابك وفهمك لهذه الخوارزميات، ستكون مؤهلا جيدًا للتحديات التي تقدمها منصات مثل LeetCode حيث يتطلب الأمر فهماً عميقا للمفاهيم الخوارزمية وقدرة على تطبيقها بشكل فعال لحل مشاكل مختلفة وتحسين أدائها و القدرة على حل المشاكل والتفكير الإبداعي.
  16. نعم بالفعل عند شراءك الدورة سيوكن لك وصول مدى الحياة للدروس وبالإضافة لذلك أى تحديثات للدورة سيكون لك الوصول إليها أيضا . وأيضا الدعم بالفعل سيكون مدي الحياة يمكنك السؤال في أى وقت بخصوص الدورة وستجد المدربين جميعا موجودن للإجابة عليك
  17. وعليكم السلام ورحمة الله وبركاته. المشكلة تكمن في كيفية تنظيم تنفيذ الدالة textTypingEffect بشكل غير متزامن. في الوقت الحالي، الدالة textTypingEffect تستخدم setTimeout لتأخير تنفيذ الدورة التالية من الطباعة بالنص، وهذا يسمح لكلا الدالتين بالعمل في نفس الوقت حيث أن setTimeout لا تحتاج إلى الإنتظار حيث يتم تنفيذها فعليا ولكن الدالة التي بداخلها هى التي تتأخر لذلك لا تنتظر الإنتهاء حتي تعمل. لحل هذه المشكلة وجعل الدالة الثانية textTypingEffect على landingParagraph تنفذ بعد الانتهاء من الدالة الأولى textTypingEffect على landingHeader يمكنك استخدام Promises بشكل صحيح للتحكم في تسلسل التنفيذ في الدالة textTypingEffect نعدلها لتعيد Promise بمجرد الانتهاء من الطباعة الكاملة : function textTypingEffect(element, text, i = 0, time) { return new Promise(resolve => { if (i == text.length) { resolve(); return; } element.textContent += text[i]; setTimeout(() => { textTypingEffect(element, text, i + 1, time).then(resolve); }, time); }); } هنا قمنا بإرجاع promise من الدالة textTypingEffect حتي يتم إنتظارها عند كتابة await textTypingEffect . وبداخلها قمنا بكتابة resolve() إذا كان طول النص مثل i حتي يتم إنهاء ال promise عندما يتم طباعة جيمع الحروف. وبدخل ال setTimeout قمنا بوضع textTypingEffect(element, text, i + 1, time).then(resolve); أي في كل مرة نمرر دالة resolve التي سوف تنهي ال promise في جزء ال then . ونعدل الدالة startTyping لتصبح كالتالي : async function startTyping() { await textTypingEffect(landingHeader, landingHeaderText, 0, 35); await textTypingEffect(landingParagraph, landingParagraphText, 0, 5); } بهذه التعديلات الآن startTyping ستنتظر حتى يتم الانتهاء من textTypingEffect على landingHeader بفضل الـ await، ثم بعد ذلك ستبدأ في تنفيذ textTypingEffect على landingParagraph. هذا يضمن أنهما لن يتنافسا على التنفيذ في نفس الوقت وسيعملان بالتتابع كما هو متوقع. وهذا هو الكود كاملا بعد التعديل : const landingHeader = document.querySelector(".landing__header"); const landingParagraph = document.querySelector(".landing__paragraph"); const landingHeaderText = "Iam Mustapha"; const landingParagraphText = "Full Stack Developer"; function textTypingEffect(element, text, i = 0, time) { return new Promise(resolve => { if (i == text.length) { resolve(); return; } element.textContent += text[i]; setTimeout(() => { textTypingEffect(element, text, i + 1, time).then(resolve); }, time); }); } async function startTyping() { await textTypingEffect(landingHeader, landingHeaderText, 0, 35); textTypingEffect(landingParagraph, landingParagraphText, 0, 5); } startTyping()
  18. وعليكم السلام ورحمة الله وبركاته . تقسيم الملفات في متجر OpenCart يتم عادة من خلال هيكلة نظامية تشمل ملفات النواة (core files)، ملفات القالب (theme files)، وملفات الإضافات (extension files). يتم تنظيم الملفات والمجلدات بطريقة تجعل من السهل الوصول إليها وتعديلها. إليك الهيكلية العامة للملفات في OpenCart: ملفات النظام (System Files): admin/: يحتوي على الملفات الخاصة بواجهة الإدارة. catalog/: يحتوي على الملفات الخاصة بواجهة المستخدم. system/: يحتوي على الملفات الأساسية لنظام OpenCart مثل ملفات التكوين (configuration files) وملفات المكتبة (library files). ملفات القالب (Theme Files): catalog/view/theme/: يحتوي على قوالب الواجهة (templates) وملفات الأنماط (CSS) وملفات JavaScript. admin/view/template/: يحتوي على قوالب واجهة الإدارة. ملفات اللغة (Language Files): catalog/language/: يحتوي على ملفات اللغة الخاصة بواجهة المستخدم. admin/language/: يحتوي على ملفات اللغة الخاصة بواجهة الإدارة. ملفات الإضافات (Extension Files): catalog/controller/extension/: يحتوي على ملفات تحكم الإضافات. catalog/model/extension/: يحتوي على ملفات النماذج الخاصة بالإضافات. catalog/view/javascript/: يحتوي على ملفات JavaScript الخاصة بالإضافات. ملفات الصور (Image Files): image/: يحتوي على جميع الصور المستخدمة في المتجر. ملفات التخزين (Storage Files): storage/: يحتوي على ملفات التخزين مثل ملفات الجلسات (session files) والملفات المؤقتة (temporary files) وملفات التعديل (modification files). ويمكنك قراءة المقال التالي والمقالات المرتبطه به لتعرف أكثر عن اوبن كارت وهذا الرابط هو المستند الرسمى لاوبن كارت لتقسيم الملفات
  19. لا أظن أن أنسب شئ هو البحث هكذا على محركات البحث حيث أن ظهور النتائج الخاصة بها ستكون معتمدة على مدي توافق تلك النتائج لمحركات البحث SEO أو ستكون إعلانات ممولة ومن الممكن أن تظهر لك شركات ليست جيده أو من الممكن عدم ظهور شئ سوي مقالات مدفوعة تتحدث عن شركات تمول تلك المقالات . أفضل شئ هو السؤال في محيطك أو في المواقع التقنية مثل linkedin أو مواقع العمل الحر مثل مستقل وغيرها أو حسب المواقع الخاصة بموقعك الجغرافى فمثلا يوجد لدينا هنا في مصر موقع مثل wuzzuf والعديد من المواقع الأخري . أو يمكنك أيضا البحث على منصات التواصل الإجتماعى مثل facebook حيث أن facebook أفضل من حيث أنك ستجد تقيمات للشركة أو الأشخاص . أما إذا كنت تريد كلمات مفتاحية لمحركات البحث فيمكنك إستخدام مثلا أفضل شركة لعمل كذا أو شركات تطوير التطبيقات وهكذا . أما بالنسبة إلى السؤال الثاني فأولا ما سأنظر إليه إذا كنت أهتم بمدي جودة العمل ولا يهمني السعر حاليا فسأبحث عن الشركات التي تلتزم بمواعيد التسليمات والتي تعطيك أيضا دعم فني بعد تسليم المشروع وايضا التي يكون لديها عملاء كثر يشكرون في أعمالها ومن ثم يمكننا التفاوض في السعر. أما إذا كنت تبحث عن أقل سعر فسيتوجب عليك التنازل عن بعض الأمور مثل التسليمات في الموعد أو حتي ان يكون المشروع ليس أفضل شئ ومن الممكن أن تواجه مشاكل بعد التسليم ولكن ما لا يجب التنازل عنه هو وجود دعم فني متاحا بعد التسليم للتأكد من عدمو وجود أى أخطاء أو مشاكل وإلا فيجب على الشركة حلها وإلا فستجد صعوبة في تعين شخص لإصلاحها ومن الممكن أن يكلفك ذلك كثيرا من المال
  20. في العادة يمكن أن يتفاوت دخل المبرمجين الذين يعملون في مجال العمل الحر بشكل كبير بناء على خبرتهم والمهارات التقنية التي يمتلكونها ومستواهم التقني والسوق الذي يعملون فيه وحجم المشاريع التي يعملون عليها، وغيرها من العوامل. وأيضا أريد أن أنبهك أن الحصول على العمل والرواتب هي من الأرزاق فلا تستعجل هذا الرزق فمن الممكن أن يكون مستواك متقدما وشخص أخر ليس بمهارتك ولكنه لديه الكثير من المشاريع التي يعمل عليها فكما أخبرتك هو في النهاية رزق لك من الله. ومع ذلك، إذا أردت أن تحصل على فكرة عامة عن متوسط الدخل، يمكنك أن تلتقط بعض الأرقام التقديرية. على سبيل المثال، في الولايات المتحدة، قد يكون متوسط دخل مبرمجي الويب الحر حوالي 60،000 إلى 100،000 دولار أمريكي سنويا، ولكن هذا يعتمد بشكل كبير على الخبرة والموقع الجغرافي والمجال الذي يعملون فيه. لذا، لتحديد متوسط الدخل بدقة أكبر، يمكنك البحث عن دراسات السوق المحلية أو الاطلاع على مواقع الوظائف المستقلة لرؤية ما يعرضه المبرمجون لنفسك الذين يعملون بنفس مجالك وموقعك الجغرافي وأيضا مواقع العمل الحر تختلف فمثلا المواقع العربية مثل مستقل وخمسات ستجد أن معظم المشاريع أسعارها قليلة وليست كالمواقع الأخري مثل upwork وهكذا . ولكن المنافسة في المواقع العربية مثل مستقل أقل من المواقع الأخري لذلك في حالتك وأنك بالكاد إنتهيت من الدورة فأنصحك أن تبدأ بالمشاريع الصغيرة وهى تبدا من 25 دولار إلى 50 وهذه الذى يجب أن تركز عليها وتعتمد شطارتك في جعل صاحب المشروع يختارك وبناء سمعة جيدة لك . ولكن في البداية من الممكن أن تنهي مشروعين إلي 4 مشاريع في الشهر بميزانية من 25 إلي 50 و كما وضحت لك هذا يعتمد على مهارة التواصل لديك وبناء سمعة جيدة لك فيجب أولا عدم الإهتمام بالسعر كثيرا والإهتمام أكثر ببناء ملف شخصى قوى وسمعة جيدة.
  21. لا بالطبع لا يمكن الإستغناء عنه حيث هذا المجلد يتم وضع الملفات الثابته فيه مثل التنسيقات وملفات جافاسكريبت . وأى ملف بداخل هذا المجلد يمكن لأى احد الوصول إليه لهذا لا يجب وضع أى ملفات مهمة في هذا المجلد .
  22. هل قمت بوضع مجلد assets بداخل مجلد public ؟ حيث تقوم دالة ال asset بوضع الرابط الخاص بمجلد public . فإذا لم تكن وضعت مجلد assets بداخل public فيجب نقله بداخله والمحاولة مرة أخري . أما إذا كنت قد وضعته بداخل public فإذا المشكلة في ملف env. حيث لم تقم بوضع رابط الموقع الصحيح في APP_URL حيث دالة asset تقوم بإخذ عنوان APP_URL ووضع مسار ال public ومسار الملف معا فإذا كان APP_URL خطأ فلن يتم تحميل الصور.
  23. نعم بالفعل next أصبح يكتشف الصورة إذا كانت بداخل المجلد app ولكن هذا ليس حلا جيدا . الحل السابق والذى قمت بكتابه أنت أولا صحيح ولكن لم ألحظ أنك تضع ال icon في مجلد غير ال public . يمكنك تجربة الحل التالي : قم بنقل الصورة إلى مجلد public وأستخدم الكود التالي : import React from 'react'; import '@/assets/styles/globals.css'; export const metadata = { title: 'Property Pulse', description: 'Find your dream rental property', keywords: 'rental, find rentals, property, find properties', icons: { icon: '/icon.png', }, }; const MainLayout = ({ children }) => { return ( <html lang='en'> <body> <div>{children}</div> </body> </html> ); } export default MainLayout; حيث أن next في ال metadata يبحث المسار من المجلد public . وإذا كنت نظرت سابقا في ال inspect ستجد أنه بالفعل وضع الصورة ولكن المسار خاطئ والملف غير موجود. ويمكنك إستخدام الكود التالي أيضا : import React from 'react'; import '@/assets/styles/globals.css'; import Favicon from '/public/icon.png'; export const metadata = { title: 'Property Pulse', description: 'Find your dream rental property', keywords: 'rental, find rentals, property, find properties', icons: [{ rel: 'icon', url: Favicon.src }], };
  24. هل يمكنك عمل inspect للصفحة وإرسال صورة لجزء ال head لنري هل يتم وضعها أم لا . وأيضا لقسم ال network لنري هل يتم وضعها ولكن لا يجد الصورة على السيرفر أم لا
  25. وعليكم السلام ورحمة الله وبركاته . لإضافة favicon في تطبيق Next.js يجب وضعها بداخل ال head مع إضافة عنصر link ويحوي خاصية rel تساوي قيمة icon في ملف ال layout.jsx لديك هكذا : import React from 'react'; import '@/assets/styles/globals.css'; export const metadata = { title: 'Property Pulse', description: 'Find your dream rental property', keywords: 'rental, find rentals, property, find properties', icons: { icon: "/assets/images/ico.png", }, }; const MainLayout = ({ children }) => { return ( <html lang='en'> <head> <link rel="icon" href={metadata.icons.icon} /> <title>{metadata.title}</title> <meta name="description" content={metadata.description} /> <meta name="keywords" content={metadata.keywords} /> </head> <body> <div>{children}</div> </body> </html> ); } export default MainLayout; الآن أعد تشغيل السيرفر مرة أخر وستظهر معك إن شاء الله
×
×
  • أضف...