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

Adnane Kadri

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

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

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

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

    52

كل منشورات العضو Adnane Kadri

  1. ستحتاجين تعريف هاذين العمودين في خاصية translatable التي تستعملها السمة HasTranslations كالتالي: public $translatable = ['name' ,'description']; انتبهي الى أن هاته الأعمدة يجب ان تكون من نوع longText لتسع تخزين كائنات الجيسون داخلها.
  2. إذا كنت تريد تخزين عدد صحيح مكون من رقمين حصرا وبمجال مفتوح قد يحتوي على أصفار بادئة ("01" أو "09" مثلا)، فيجب عليك استخدام عمود VARCHAR بدلاً من الاستعانة بـ tinyInteger او smallinteger لأن كل منهما يقوم بإنشاء عمودين TINYINT و SMALLINT على التوالي، وهما ما لا يخدمان الغرض الذي لديك. $table->string('price', 2); لأن TINYINT والذي يعتبر الأقل يقبل تخزين أعداد من سالب 127 الى 127 معينة و من 0 الى 255 غير معينة.
  3. هل يمكنك ارفاق شيفرة الدالة كاملة؟
  4. هو نفسه الفرق بين استضافات Linux واستضافات ويندوز، فالأولى قائمة على نظام تشغيل لينكس ومعدة للتعامل مع وحدات وتطبيقات قائمة على هذا النظام، من مثل: التطبيقات او السكربتات القائمة على وحدات Apache مثل PHP وما الى ذلك. SSH أما استضافات ويندوز فهي معدة للتعامل مع تطبيقات قائمة على نظام ويندوز من مثل: ASP.net MS access C# RDP في الأولى، نجد Cpanel كواحدة من لوحات التحكم الشائعة في مثل هاته الاستضافات، وتقابلها WHM في استضافات ويندوز. أما عن الأكثر شيوعا، فاستضافات لينكس تكتسح بفرق كبير. وهو الأمر ذاته في خطط قودادي.
  5. يوجد الكثير من الطرق، أفضل استعمال احد اضافات قوقل كروم في ذلك. يوجد مثلا اضافة اسمها 1clickvpn بسيطة وسهلة الاستعمال. اختبري ذلك.
  6. تأكدي من كل من التالي: أن البلد الذي تقومين من عليه بتصفح التطبيق مدعوم وغير محظور من قبل الموقع. وفي حالة ما كان ذلك يمكنك استعمال VPN للقيام بذلك. أنك تقومين بتصفحه من الرابط الصحيح: https://chat.openai.com/chat من امتلاك حساب. ايضا قد تكون المشكلة متعلقة بالخادم لا بالعميل، أي انها مشكلة تتعلق بالوصول الى المورد من الخادم. انتظري بعض دقائق واعيدي الدخول.
  7. يمكنك تعطيل زر الارسال عند ضغطه لأول واعادة تمكينه عند اكتمال الطلب. سيمكنك بهذا تلافي هاته المشكلة. مثال: <button onclick="sendMessage()">send</button> .. <script> let isSending = false; function sendMessage(){ if(! isSending){ // يتم الارسال الآن isSending = true // ارسال طلب الاجاكس // بعد نجاح طلب الاجاكس .then(response => { isSending = false }) } } </script>
  8. مرحبا ايمن، بالطبع يمكنك فالخوارزميات وبنى المعطيات أوسع من أن تحصر في بايثون، ولكنك لن تحتاج تعلمه على نحو عميق اذ يتم في بادئ المسار شرح تهيئة بيئة عمل خاصة ببايثون فقط. اي انك لن تعرف منه الا القدر الذي ستحتاجه لاستيعاب مفاهيم المسار. ولك الخيار ان شئت تطبيق ذلك وفق الجافاسكربت. أظن أن الأمر سيكون متعبا ومشتتا اذ ستحتاج استيعاب شيفرات بايثون اولا ثم تحويلها الى شيفرات جافاسكربت، فأنت في الأخير ستجد نفسك تتعرض لها حتما.
  9. يبدوا أن هنالك مشكلة بتضمين مكون portfolio.vue من الأساس. انتبه الى تضمينه على نحو صحيح.
  10. ان كنت تقصد من ضمن دورات الأكاديمية، فلا. لا تتوفر أكاديمية حسوب على دورة لتعليم الهكر الأخلاقي. يمكنك تقديم اقتراحك لفريق الدعم.
  11. لا أظن أن ذلك يسبب مشكلة للهاتف ولكن يمكنك استعمال ادوات اكثر فعالية لرفع الفيديو من مثل : ضغط الفيديو ورفعه، استعن في ذلك بتطبيقات من مثل 7-Zip استعمال تطبيق عميل FTP / SFTP. استعمال uTorrent لرفع الملف على دفعات في الخلفية (تأكد من موضوع الخصوصية)
  12. هل تظهر اي رسالة خطأ ؟
  13. أفترض أنك تمتلك مكون فرعي يتم به عرض مجموعة من الأعمال ولنقل انه يتم تخزينها في مصفوفة كائنات projects. وتريد بشكل ما حساب عدد هاته الأعمال وحقنها الى المكون العام الذي يعبر عن الصفحة الرئيسية. يمكنك كفكرة التقاطها كعائد عن تابع للمكون معرفا كمرجع كـ: <template> <div id="app"> <h2> {{ projectsCount }} </h2> <ProjectsComponent ref="ProjectsComponent" /> </div> </template> <script> import ProjectsComponent from './ProjectsComponent' export default { data:{ projectsCount: 0, } components: { ProjectsComponent }, mounted () { this.projectsCount = this.$refs.ProjectsComponent.getProjectsCount(); } } </script> قم في داخل المكون الفرعي نعرف التابع getProjectsCount الذي يعيد عدد المشاريع: <template> <div id="projects"> projects </div> </template> <script> export default { data(){ return { projects:[ {id: 1, name: 'Web development'}, {id: 1, name: 'Web design'} ] } }, methods:{ getProjectsCount(){ return this.projects.length } } } </script>
  14. الأمر في النهاية هو واحد، فكل اللغات قادرة على تلبية احتياجات أي مشروع ويب مطروح وتبقى هاته اللغة مجرد آداة لهندسة تصميم معين أو وصف نظام ليعمل وفق طريقة ما. ان كنت تحس أنك تائه في اختيار لغة ما ففيما يلي بعض الخطوات التي قد تساعدك في ذلك: قم بعمل نظرة تحليلة شاملة لسوق العمل الذي تريد أن تعمل فيه مستقبلا واستخلص الأكثر طلبا. قم بالبحث عن حجم مجتمع لغة معينة وعدد العاملين بها في العالم (قد تساعدك استفتاءات مطوري stackoverflow). فاللغة الأكثر شيوعا لها الأفضلية طبعا. خذ نظرة عامة عن أقوى أطر العمل في كل لغة ومدى شيوعها. اسأل أو قم بتقدير سهولة تعلم كل لغة وقارن بينها (learning curves). وفي الأخير قم بالإختيار وابدأ التعلم مباشرة وفقط. وفي مرحلة ما، ستجد أن كلها يتشابه بنسبة كبيرة وسيمكنك التبديل بينها بسهولة تامة. ولكن الأهم أولا هو اختيار أحدها واتقانه والتركيز عليه.
  15. لا حاجة للحذف اذن، قم بتعديل تعليقك وازل الصورة ان كانت عن مشروع خاص. وفي حالة اقتباس تعليقك من قبل مدرب معين، جرب التواصل معه وطلب ذلك منه.
  16. مرحبا احمد وعليكم السلام، أظن أنه لا يمكن ذلك في الأكاديمية. الأعضاء المشرفون فقط من يمتلكون صلاحية اخفاء تعليق عن عامة المستخدمين الآخرين. التعليقات السابقة في الدورات هي الأخرى مرجع ومادة علمية يستفيد منها الطلبة الآخرون. لما تريد حذفها؟
  17. هلا قمت بالتقاط صورة كاملة لرسالة الخطأ التي تظهر؟ هل الموضع الذي تقوم بتعليقه هو ما ان ينتج المشكلة ام انك تقوم بتصريح المتغير facebook_login_url في مكان آخر؟
  18. أظن أن الموضوع نسبي وذاتي جدا، فاستيعابك وتطبيقك العملي على ما تتعلمه يؤثران بشكل كبير على الموضوع، هذا بجانب احتمالية أن تكون هنالك بعض الدروس التي تمتد الى مدة اطول من الأخرى، وبالتالي فإن المادة العلمية المقدمة ستكون أكثر. بدل ذلك، يمكنك تخصيص ساعتين او ثلاث او ما يناسبك بشكل يومي، على أن تجعلها كحد أقصى للدراسة والممارسة. وبما أن الدورة منظمة ومهيكلة وفق دروس ومسارات فسيخدمك ذلك كثيرا. التركيز على موضوع الوقت غير مجدي كثيرا، في مقابل ان التركيز في فعاليتك وانتاجيتك هو ما يهم فعلا. فأن تتعلم شيء ما جديد كل يوم مؤشر جيد. وبالتالي فإن الحد الذي تتوقف فيه عن استيعاب الدرس والتعلم هو ما يعتبر نهاية مدة دراستك لليوم او الفترة. سواء بسبب التعب او الملل او ما الى ذلك. قم بجعل العملية مرنة وواصل التعلم وفقط.
  19. مرحبا أحمد، الاحساس بالغموض تجاه الأكواد شيء طبيعي وخصوصا في بداية مسيرتك، ولذلك فإنه لا يجب عليك القلق كثيرا بشأن هذا الموضوع. وفي حال التباس شيء ما عليك تذكر ان هنالك فريقا كاملا من المدربين والمتخصيين يتابعون الدورات اذ يمكنك طرح سؤالك او تعليقك او طلب توضيح اسفل الدرس المعني وسيتم المتابعة معك حتى تتضح الفكرة معك بشكل كامل.
  20. الفكرة كلها تتمحور حول شرط: اعجاب المستخدم بالمنشور او لا. والذي يترجم الى: امتلاك المستخدم المعني لسطر في جدول likes بـ post_id المنشور المعني. يمثل بالاستعلام: $currentUserId = ..; $targetPostId = ..; $sql = "SELECT * FROM likes WHERE user_id = ${currentUserId} AND post_id = ${targetPostId}"; الآن لن تحتاج الا للتحقق من اعادة هذا الاستعلام لنتائج او لا: $conn = new mysqli("host", "username", "password", "database"); $currentUserId = ..; $targetPostId = ..; $sql = "SELECT * FROM likes WHERE user_id = ${currentUserId} AND post_id = ${targetPostId}"; $result = $conn->query($sql); if (mysqli_num_rows($result) > 0) { echo "المستخدم معجب"; } else { echo "المستخدم غير معجب"; } الآن سيمكن استعمال هذا الشرط لعرض وتصيير زر الاعجاب.
  21. هاته الطريقة لم تعد متوفرة منذ الاصدار السابع، في اصدارات لارافيل الأخيرة ابتداءا من النسخة الثامنة ستحتاجين تعريف المسار واسناده ذات الاسم كـ: use Illuminate\Foundation\Auth\EmailVerificationRequest; Route::get('/email/verify/{id}/{hash}', function (EmailVerificationRequest $request) { $request->fulfill(); return redirect('/home'); })->middleware(['auth', 'signed'])->name('verification.verify'); هذا المسار سيتعامل مع الطلبات التي تم إنشاؤها عندما ينقر المستخدم على رابط التحقق من البريد الإلكتروني الذي تم إرساله إليه عبر البريد الإلكتروني.
  22. انتبه الى ان الصور تعمل الآن بعض اضافة القاعدة السابقة. جرب طلب مسار صورة: https://arabiauniform.areyada.com/assets/images/hook/1654601323باركود-05.png او طلب مسار صورة غير موجود: https://arabiauniform.areyada.com/assets/images/hook/لتبس-05.png لم تعد ذات الرسالة السابقة تظهر.
  23. نعم يمكن ذلك ان كنت تحاول فقط تشغيل المشروع، سيكفيك التأكد من توافق متطلبات التشغيل مع بيئة العمل وفقط.
  24. سؤالك يفتقر الى مزيد من التفاصيل، هل يمكنك التوضيح اكثر؟
  25. يذكر ان هنالك الكثير من النسخ ما بين النسخة التاسعة والخامسة للارافيل، ولذلك فإنك قد تضطر للعمل على الكثير من التحديثات التي تمتلك تأثيرات عالية الخطورة High likelhood of impact. والتي يجب مراعاتها ما بين النسخة والأخرى، أي ان كنت ستقوم بالأمر بشكل يدوي فستحتاج: تحديث التطبيق من 5 الى 6 تبعا لدليل التحديث واعتبارا لأي تحديثات عالية الخطورة // // من 6 الى 7 ثم من 7 الى 8 ومن 8 الى 9 وهو الأمر الذي لا يعد عمليا ولا سهلا. مقاربة أخرى يمكن الاعتماد عليها هي إنشاء تطبيق لارافيل جديد تماما وليكن بالنسخة 9 ثم قم بنقل ملفات المتحكمات، النماذج والعروض والمسارات وملفات البذر وما الى ذلك من تطبيقك القديم الى هذا الجديد، ثم سيكون من السهل تشخيص الاخطاء والعمل عليها. على الأقل لن تهتم آنذاك بتحديثات الاعتماديات وسيمكنك الاهتمام مباشرة بالتحديثات التي تختص بسياق الكتابة فقط. ان شئت اختصار الطريق، فستحتاج بشكل ما الى أتمتمة العملية والاعتماد على خدمات مدفوعة من مثل Laravel shift.
×
×
  • أضف...