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

محمد أبو عواد

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

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

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

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

    95

كل منشورات العضو محمد أبو عواد

  1. لا تحتاج الكشيدة الى نوع خط معين أو تنسيق معين, يمكنك عملها فقط باستخدام شفت + حرف التاء, هل تواجهين مشاكل في تطبيقها أم أنني لم أفهم سؤالك جيدا؟
  2. هل يعطي أي نتيجة ام فقط يبقى هكذا؟ عادة يحدث ذلك بسبب العدد الكبير للبيانات التي يتم اضافاتها فيظهر وكأنه مجمد, اما أن تنتظر أو تحاول تقليل عدد البيانات التي تحاول ادخالها, جرب بعدد قليل بداية لترى هل يوجد مشاكل في اضافة البيانات أم لا ثم بعد ذلك يمكنك اضافة الكثير منها
  3. ربما لأنك تعمل على الاصدار الاخير من لارافيل والذي يعمل مع مكتبة tailwind وليس بوتستراب, يمكنك باستخدام أدوات المطور التي يمكنك الوصول اليها من خلال الضغط بالزر الأيمن للماوس في أي مكان من الصفحة واختيار فحص العنصر أو inspect elements أن تقوم بتفحص التنسيقات واضافة التنسيقات المناسبة ليظهر الشكل بشكل جيد, أو يمكنك استخدام تضمين بوتسراب في المشروع, ثم في ملف AppServiceProvider الذي تجده في المسار التالي app/Providers/AppServiceProvider , وضع السطر التالي في التابع boot Paginator::useBootstrap(); ثم حاول مرة أخرى
  4. بداية يجب أن نحصل على الcategary وعلى جميع بياناته كالتالي $categary=Category::find($post->categary_id); بعد ذلك يمكنك الوصول لجيمع بيانات هذا categary فمثلا لو أردت الحصول على اسمه يمكنك ذلك من خلال الكود التالي $categary->name
  5. الدالة sort نستطيع من خلالها تمرير function لديها معاملات واجراء بعض الشروط على المعاملات وعلى أساس ذلك يمكن ترتيب العناصر, الكود الذي في الأعلى هو اختصارا لهذا الكود numbers =[2, 14, 1, 2, 5]; numbers.sort( function( a , b){ if(a < b) return 1; if(a > b) return -1; return 0; }); اذا كان المعامل الاول أصغر من المعامل الثاني قم بارجاع القيمة 1 وهي تعني ان قم بعملية الترتيب والعكس صحيح, يمكنك تجربة الكود الكود المرفق مع الكود الذي ارفقته أنت لترى النتائج
  6. يمكنك فعل ذلك عن طريق Broadcasting ويمكنك فعل ذلك كالتالي def broadcasting_app(a, L, S ): numOfRows = ((a.size-L)//S)+1 return a[S*np.arange(numOfRows)[:,None] + np.arange(L)] حيث ان المعامل a هو المصفوفة التي سوف تمررها والمعامل L هو عدد الأعمدة والمعامل S هو عدد الأسطر
  7. لديك العديد من المشاكل, بداية في ملف المتحكم وبالتحديد في التابع index سوف نقوم بتغيير اسم المتغير post الى post ,لاحظي السطر التالي $posts = Post::all(); return view("post.index",compact('posts')); لاحظي لقد اضفت حرف s للمتغير المشكلة الثانية أنك قمتي بعمل تعليق على كود الذي يعرض البوستات في ملف index.blade.php, سوف نقوم بتغيير الكود ليصبح كالتالي <div class="container"> @foreach ($posts as $post) ^^^^^^^ <table> @can('View', $post) ^^^^^ <tr> <td>{{$post->body}}</td> </tr> @endcan </table> {{-- {{$post}} --}} @endforeach @can('viewAny') ^^^^^^^^^^^^^^^ KKKKKKKKKKKKKKKKKKKKKKKKKKKKK @endcan </div> @endsection التغيير الأول لقد قمت بتغيير اسم المتغير من post الى posts وهو الذي مررناه الى صفحة العرض index , التغيير الثاني أن التابع View في ملف البوليسي يقبل معاملين, المعامل الأول هو كائن من نوع user والمعامل الثاني كائن من نوع post , ولذلك في حلقة التكرار سوف نقوم بتمرير ال post الذي نمر عليه التغيير الثالث , أنه لا يوجد لديك تابع في ملف البوليسي اسمه view-Any بل اسمه viewAny ولا يقبل الا معامل واحد وهو كائن من نوع يوزر وليس post
  8. الحطأ يقوم أن ملف git. معرف بداخل مجلد المشروع الذي تحاول رفعه , هذا المجلد من المجلدات المخفية وربما أنت لم تفعل خيار ظهور الملفات المخفية, يمكنك فعل ذلك كالتالي سوف يظهر الملف git. , يمكنك حذفه وكتابة الأمر مرة أخرى
  9. لم استطع ان أفهم السؤال جيدا, هل يمكنك توضيج ذلك في سؤال جديد في قسم الأسئلة وتوضيح المطلوب بشكل جيد وفي اي لغة؟
  10. لنشرح ذلك بمثال بسيط <select name="test"> <option value="1">A</option> <option value="2">B</option> <option value="3">C</option> </select> كما تلاحظ لقد قمت بتحديد الخاصية name للعنصر select, وسوف تكون القيمة هي الخاصية value من العنصر الذي تم اختياره, فمثلا لو تم اختيار العنصر A والتي قيمته 1 سوف يتم ارسال القيمة الى السيرفر بهذا الشكل test=>1
  11. لفعل ذلك أنت تحتاج الى استخدام العنصر select وأيضا من حسن الحظ بوتستراب توفره أيضا, يمكنك الذهاب اليه من هنا, واذا كنت تريد ايضا تغيير شكله يمكنك فعل ذلك باستخدام الكلاسات الخاصة به ويمكنك تحديد التنسيقات لكل عنصر باستخدام css
  12. هل تقصد عندما أفتح الموقع أجد كلمة أسئلة البرمجة هي المختارة بشكل تلقائي؟
  13. يمكنك استخدام css لتخصيص شكل dropdown باستخدام الكلاسات الخاصة بالمكون dropdown , فمثلا يمكنك تغيير شكل العنصر الذي لديه الكلاس dropdown-toggle كالتالي .dropdown-toggle { background-color: #333; border-color: #ccc; border-style: solid; width: 250px; height: 40px; } يمكنك وضع التنسيقات التي تريد باستخدام هذه الطريقة, وأيضا السهم الصغير الذي يأتي بشكل تلقائ مع المكون dropdown يمكنك ازاته باستخدم التنسيقا الآتي #dropdownMenuButton::after{ display: none; } ثم يمكنك وضع شكل السهم الذي تريد, يمكنك تغيير أي شيء ويمكنك الاستعانة بحزمة المطورين التي تستطيع الوصول اليها بالشغط بالزر اليمين من الماوس في أي مكان من الصفحة ثم اختيار فحص العنصر او inspect elements فهي تساعدك جيدا في تحديد العناصر جيدا
  14. توفر بوتستراب مكون جاهز يسمى dropdown يمكنك الحصول عليه من الموقع الرسمي للمكتبة, يمكنك الذهاب الى صفحة المكون من هنا, سوف تجد العديد من الامثلة عن dropdown وبمختلف الأحجام والالوان ويمكنك اختيار الشكل الذي تريده فقط بنسخ الكود الخاص به وهذا الكود الخاص بأبسط شكل لل dropdown <div class="dropdown"> <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Dropdown button </button> <div class="dropdown-menu" aria-labelledby="dropdownMenuButton"> <a class="dropdown-item" href="#">Action</a> <a class="dropdown-item" href="#">Another action</a> <a class="dropdown-item" href="#">Something else here</a> </div> </div>
  15. يمكنك استخدم --eval واستخدم shell لتعديل الأمر الذي تم تمريره كالتالي mongo --eval "print('var1');"
  16. الإجابة هي لا ,ولكن يمكنك استخدام المجموعات OrderedDict من مكتبة Python القياسية ويمكنك استخدامها كما في التعليق السابق للمدرب عبد المجيد, اعتبارا من بايثون Python 3.7 تم استخدام dict وهو اكثر أداء من OrderedDict ويمكن استخدامه كالتالي myList = ['foo', 'bar', 'bar', 'foo', 'baz', 'foo'] list(dict.fromkeys(myList)) #output ['foo', 'bar', 'baz']
  17. يمكنك استخدام format() كالتالي age= 18 print("I have {} years old".format(age)) أيضا يمكنك استخدام % كالتالي age= 18 print("I have %d years old"% age) كما يمكنك استخدام التكوين ""f كالتالي age= 18 print(f"I have {age} years old") كما يمكنك استخدام الفواصل كالتالي age= 18 print("I have ",age," years old")
  18. نعم يمكنك ذلك, حيث قام الموقع الرسمي ل nextjs بشرح ذلك, يمكنك فعل ذلك كالتالي import dynamic from 'next/dynamic' const NoSSR = dynamic( () => import('../components/test'), { ssr: false } ) function Test() { return ( <div> <Header /> <NoSSR /> <p>Test PAGE</p> </div> ) } export default Test
  19. يتطلب MongoDB الخاصية _id كمفتاح أساسي فريد يقوم بفهرسته تلقائيًا ولذلك امامك خياران لفعل ذلك الأول أن تستخدم الخاصية _id وتقوم بتعيينها باسم المستخدم. الخيار الثاني أن تقوم بإنشاء خاصية اسم مستخدم ، ثم تقوم بإضافة فهرس إلى هذه الخاصية الجديدة. سيظل لديك _id ، ولكن يمكنك الاستعلام باستخدام اسم المستخدم.
  20. يمكنك التحقق انك في server باستخدام الأمر الآتي if (typeof window === 'undefined') { } وبالمثل اذا كنت في client باستخدام الأمر الآتي if (typeof window !== 'undefined') { }
  21. في هذه الحالة نستخدم any التي تقوم بارجاع true اذا كان أي عنصر من عناصر القائمة موجود في النص string = "board, projects, resources and activities" arr = ['board', 'projects', 'activities'] if any(x in string for x in arr): print("Found") اذا كنت تريد التحقق من حميع الكلمات نستخدم all التي تقوم بارجاع true اذا كان كل العناصر الموجودة في القائمة موجودة في النص string = "board, projects, resources and activities" arr = ['board', 'projects', 'activities'] if all(x in string for x in arr): ^^^^^ print("Found")
  22. يمكنك استخدام الأمر الآتي nvm install النسخة الجديدة --reinstall-packages-from=النسخة القديمة على سبيل المثال nvm install 6.7 --reinstall-packages-from=6.4 بعد ذلك إذا أردت حذف نسختك السابقة باستخدام الأمر التالي nvm uninstall نسختك القديمة أو بدلا من ذلك يمكنك استخدام الامر التالي nvm install stable --reinstall-packages-from=current
  23. تم إهمال استخدام الخيار --dev, يمكنك استخدم --only=dev بدلا من ذلك كالتالي npm install something --only=dev
  24. بداية نحتاج الى وحدات path و fs ثم نحتاج الى مسار المجلد باستخدام التابع path.join() ثم نستخدم fs.readdir, هذه الدالة تأخذ معاملين, المعامل الاول المسار والمعامل الثاني callbackFunction وبداخل callbackFunction نقوم بمعالجة الأخطاء ان وجدت واذا لم توجد نقوم بالمرور على قائمة الملفات , مثال لك: const path = require('path'); const fs = require('fs'); const myPath = path.join(__dirname, 'Test'); fs.readdir(myPath, function (err, listOfFiles) { if (err) { return console.log(err); } listOfFiles.forEach(function (file) { console.log(file); }); });
×
×
  • أضف...