-
المساهمات
5232 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
52
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Adnane Kadri
-
في حالة تشعب اكثر من مصفوفة عن خاصية ما، يمكنك استعمال السياق parent.*.child للمرور على كامل عناصر كل مصفوفة، بشكل يمكننا من التحقق من كل خاصية كـ: "posts.*.title": 'required', "posts.*.content": 'required', "posts.*.additional_tags": 'required' في النسخ الأقدم من لارافيل قد لا يكون هذا الخيار متاحا، يمكنك على كل حال الاستعانة بتكرارة foreach لتكوين مصفوفة قواعد ومقاربة نفس النتيجة، نستعمل FormRequest مثلا كـ: public function rules() { $rules = [ 'api_key' => 'required|integer', 'tags' => 'required', ]; foreach($this->request->get('posts') as $key => $val){ $rules['posts.'.$key.'.title'] = 'required'; $rules['posts.'.$key.'.content'] = 'required'; $rules['posts.'.$key.'.additional_tags'] = 'required'; } return $rules; } التحقق (validation) في Laravel
- 2 اجابة
-
- 1
-
-
الفكرة هي أن هذا الموضوع نفسه قد تم وصفه في دليل التحديث الخاص بلارافيل 8 من نسخ سابقة كتحديث عال التأثير High Likelihood Of Impact لأن منشئات البذرة database seeders و معامل النماذج model factories ابتداءا من هاته النسخة عرفت ضمن نطاقات اسماء namespaces . اذ تقوم لارافيل بالتعرف عليها وتحميلها تلقائيا من ملف composer.json عن طريق معيار psr-4 وهو احد معايير التحميل التي شاع استخدامها في لارافيل. لفعل ذلك، أضف تعيينات نطاقات الاسماء الجديدة ضمن كائن psr-4 في autoload: "autoload": { "psr-4": { "App\\": "app/", "Database\\Factories\\": "database/factories/", "Database\\Seeders\\": "database/seeders/" } }, وبالطبع لا تنسى ازالة كائن classmap من autoload: "classmap": [ "database/seeds", "database/factories" ] استفد اكثر من هاته الاجابة
- 2 اجابة
-
- 1
-
-
مكتوب ان الحزمة تدعم من قبل حتى النسخة 7 من PHP ، لارافيل 9 يستعمل نسحة احدث من PHP قد تواجه مشكلة بتضمينها كحزمة خارجية ايضا.
- 4 اجابة
-
- 1
-
-
يحدث هذا لأنك تحاول تثبيت حزمة تعتمد على swiftmailer في تطبيق لارافيل هو في الارجح النسخة 9. معروف عن انه ابتداءا من هاته النسخة قد تم التخلي على swiftmailer واستبدالها رسميا ب symfony mailer وهذا لأن اطار symfony نفسه الذي يعتمد لارافيل على العديد من مكوناته قج أعلن التوقف عن دعم SwiftMailer وأطلق مكتبته الجديدة Symfony Mailer. وبالتالي فإن أجد انه هاته الحزمة smsgatewayme/client-php لم تلقى اي تحديثات منذ اربع سنوات. هذا يعني انه مخصصة لنسخ قديمة من لارافيل، جرب استعمالها مع نسخة 7 منه. وإلا فإنه يقترح البحث عن حزمة مكافئة وأحدث وأكثر مواكبة للتغيرات التي حدثت على اطار عمل لارافيل منذ ذلك الحين.
-
يحدث هذا لأن مشروعك يصف مسارات ملفات يستعملها للتخزين المؤقت خاطئة. أظنك تستعمل تطبيق لارافيل، فهاته هي صفحة ignition التي يستعملها لارافيل في تشخيص الأخطاء. يحدث هذا الخطأ بسبب غياب الملفات المستهدفة. قم يدويا بإنشاء المجلدات التالية: views cache sessions داخل مجلد storage/framework كخطوة اضافية تابعة للخطوة السابقة، ان كنت تمتلك وصول SSH او توصلا لفتح ال terminal قم بتشغيل هاته الاوامر تباعا: php artisan cache:clear php artisan config:clear php artisan view:clear يفترض ان يعمل الآن
-
من الطبيعي ان لا يتم رفع ملفات الاعتماديات الخارجية ضمن مستودعات للمشاركة، فهاته الأخيرة تحوي ملف وسطيا يمكن من عليه تحميل هاته الاعتماديات وتشغيلها. يشمل هذا اعتماديات composer و node. ستلاحظ أن مجلدي vendor و node_modules غائبان عن المشروع الذي تحاول استنساخه. مجلد vendor يحوي الملف المشار اليه في رسالة الخطأ لديك. لتوليد هذين الأخيرين قم بتشغيل الأمرين: composer install npm install وبالطبع فإن composer و npm يجب ان يكونا مثبتين بالفعل.
- 3 اجابة
-
- 1
-
-
prantheart غير معرف اساسا داخل حدث الضغط على bttn أي ان هذا السطر لا حاجة منه اساسا: setTimeout(() => { //prantheart.remove() بدل ذلك، لا لا تقومين فقط بتحديد حاوي عناصر القلوب وتفريغه بعد ان يتم عرضها لزمن معين؟ يمكنك استبدال سطر الحذف prantheart.remove بـ: let contenerheart = document.getElementById("contenerheart"); contenerheart.innerHTML = ''; سيتم تفريغ المحتوى بعد عرضه.
-
ما تقصده يسمى خادم وكيل proxy server. ولا يوجد اي آداة خارقة في الموضوع. كل الأمر ان المستخدم: يقوم بارسال طلب الى خادم البروكسي يستقبل هذا الاخير الطلب ويقوم بطلب الصفحة المحجوبة عن المستخدم من على الخادم نفسه. بعد ان يتلقاها الخادم سيقوم باعادة ارسالها الى المستخدم. يتلقى المستخدم الصفحة المحجوبة عنه أي ان الامر مثلما يسمى فعليا: هة مجرد وكيل. فالمستخدم المحجوب عنه موقع ما يوكل الى الخادم مهمة طلبه عنه. وبهذا نسميه خادم وكيل. يمكنك بشكل مبدئي انشاء سكربت يقوم بهاته المقاربة. ولكن يقترح الاستفادة من أحد المشاريع مفتوحة المصدر التي تقدم خدمة مشابهة. استعن بموضوع php-proxy على الgithub (تطبيقات، سكربتات، كلاسات). تأكد فقط من ان الاستضافة التي ستقوم برفع هذا التطبيق عليها لا تحظر هذا النوع من الممارسات، اذ لا تقبل بعض الاستضافات استضافة خوادم وكيلة بشكل مصرح. تكون عادة الخوادم المخصصة او الافتراضية VPS خيارا جيدا لاستضافة مثل هاته التطبيقات.
- 1 جواب
-
- 1
-
-
بالنسبة للواجهة الخلفية، ستمتلك معلومات جد محدودة عن الواجهة الامامية. وتعاملها لا يكون مع الوسائط media، نوعها ومميزاتها بالمعاملات المنطقية المألوفة بشكل يسمح بالعمل على استعلامات الوسائط media queries. ولكنها تتعامل مع منطق آخر تماما: العميل او User Agent. فان كنت تحاول بشكل من الاشكال القيام بـ: @if($screensize < 768px) .. اي شيفرة هنا @endif يمكنك الاعتماد على تعقب العميل والتحقق من ما ان كان يتصفح من الهاتف ومقاربة نفس النتيجة بشكل ما كـ: @if($agent->isMobile()) .. @endif يمكنك الاستفادة مما تقدمه هاته الحزمة jenssegers/agent . سهلة التثبيت وتوفر التحققات التالية: $agent->isMobile(); // التحقق من ما ان كان جهاز العميل جهاز هاتف $agent->isTablet(); // التحقق من ما ان كان جهاز العميل جهازا لوحيا $agent->isDesktop(); // التحقق من ما ان كان جهاز العميل حاسوبا مكتبيا او محمولا لاحظ ان هاته الحزمة او مثيلاتها في الواجهة الخلفية لا تتعامل مع نقاط التوقف breakpoints وانما مع تحليل نوع الجهاز. يمكنك بشكل من الاشكال معاملتها بذات المنطق، لن تختلف نقاط التوقف من جهاز لآخر إلا بشيء قليل.
- 2 اجابة
-
- 2
-
-
يجب تفعيل وضع تصحيح الأخطاء لتشخيص الخطأ اولا ومن ثم العمل على حله. أظنك تستعمل لارافيل فرسالة الاعتذار هاته عادة هي رسالة خطأ تطبيقات لارافيل في وضع الانتاج. يوجد ملف يحمل متغيرات البيئة يسمى env. ، افتحه ستجد به السطر التالي: APP_DEBUG=false قم بتبديله الى: APP_DEBUG=true احفظ الملف، ثم اعد تحديث الصفحة الرئيسية للموقع. سيظهر تفصيل للخطأ يمكنك بعدها العمل على المشكلة أكثر. في حالة استمرار ظهور رسالة الخطأ مثلما هي رغم تغيير وضع التصحيح قم بالانتظار قليلا واعد المحاولة. أما ان كنت تمتلك وصول ssh قم بتنفيذ الأمر: php artisan cache:clear على دليل المشروع الخاص بك. ان كنت تستعمل تطبيقا غير لارافيل، سيوجد طريقة لفعل ذات الأمر. يجب عليك تفعيل وضع التصحيح أولا.
-
هل جربت استعمال اضافة Easy Digital Downloads لبيع المنتجات الرقمية المدفوعة والمجانية؟ رغم الميزات التي تعرضها الا ان الاضافة مدفوعة ولا تتوفر بشكل مجاني. يوجد أيضا اضافة ebook store أظن انها تمتلك خيارا لبيع الكتب المجانية. وكاضافة تختص بعرض وتنزيل الكتب المجانية بشكل كامل توجد اضافة Ebook Downloader .يمكن المستخدمين من تحميل الكتب الإلكترونية في النظام دون الحاجة الى تسجيل الدخول إلى النظام. ذكرت انك تمتلك بالفعل نظاما يعرض كتبا للبيع واخرى مجانية. ما هي الاضافة التي استعنت بها على ذلك؟ يمكنك التبديل الى اخرى اكثر خدمة لهذا الغرض
- 2 اجابة
-
- 1
-
-
من اجل استثناءها من التحقق لا تحددها ببساطة واحذف الأسطر الخاصة بها. ما تحاول القيام به غير واضح جيدا. هل تبحث عن كيفية التحقق من حقل select في جافاسكربت أم عن كيفية استثناءه من التحقق؟
-
هل جربت whereMonth مع اعادة تنفيذ الاستعلام عن طريق get؟ @foreach ($project->comments->whereMonth('created_at' , $month )->get() as $comment) رغم ان ملفات العرض Views ليست المكان الجيد لتعريف الوظائف والتوابع. استعن بملفات النماذج Model لفعل هذا. ليكن مثلا التابع commentsOfMonth لملف النموذج Project كـ: public function commentsOfMonth($month) { return $this->comments->whereMonth('created_at' , $month )->get(); } تستعمل كـ: @foreach ($project->commentsOfMonth($month) as $comment)
-
هلا قمت بتحديد عنصر القائمة بعد حدث الضغط وليس قبله؟ myButton.addEventListener("click", function(){ let yearSelect = document.getElementById("year-dropdown"); let year = yearSelect.value;
-
وعليكم السلام، يمكنك مباشرة جلب القيمة الخاصة بالحقل وفحصها والتحقق منها: var select = document.getElementById('select'); // جلب عنصر القائمة المستهدف var value = select.value; if (value.length > 0) { // تم اختيار قيمة من القائمة المنسدلة } ايضا يمكنك استعمال الخاصية required في HTML5 <select id="select" required="required"> <option value="">Choose an option</option> <option value="option1">Option1</option> <option value="option2">Option2</option> <option value="option3">Option3</option> </select> يتم اجبار المستخدم هنا على اختيار حقل قبل تقديم النموذج، يمكنك تخصيص التحقق بما يلائم حاجتك. وليكن مثلا التحقق من ما ان كان طرح تاريخ اليوم الى تاريخ ميلاد المستخدم يساوي او اكبر من 18 سنة.
- 7 اجابة
-
- 1
-
-
يقتضي هذا بشكل من الاشكال ان يتصلا بنفس قاعدة البيانات، على ان هاته البيانات المشتركة الموحدة (المحتوى والقالب مثلا) يجب ان يتم تخزينها في هاته القاعدة. يمكنك استعمال اتصال قاعدة بيانات خارجي، بجانب تخزين خارجي. لخدمة هاته الفكرة أكثر. تأكد فقط من اعداد اتصال قاعدة بيانات مماثل لكل من المواقع. وبالطبع فان هذين الموقعين يجب ان يقوما بنمذجة هاته البيانات وفق منطق واحد. فعلى سبيل المثال: لا يتطلب الموقع الاول الاتصال بجدول المنتجات في حين ان الثاني يطلب جدول قواعد بيانات آخر. ان كنت تستعمل وردبرس، يمكنك لحد ما تطبيق هاته الفكرة. اما ان كنت تستخدم تطبيقي ويب مختلفين تماما. فالأمر لن يكون بالبساطة التي وصف عليها.
-
نعم، ذلك بسبب اختلاف النسخ المستخدمة. الصورة الأولى هي الموافقة لمحتوى الملف في نسخ 2.x في حين ان ما لديك هو الموافق للنسخ الأحدث أعلى من 6. فـ Program.cs لم يعد صنفا مثلما كان في النسخ السابقة. وهذا التغيير لا يخص اطار Net. نفسه بل هو سياق تم اطلاقه مع Net. 6 و #c النسخة التاسعة. يدعى السياق بـ top-level-statemens او بيانات المستوى الأعلى، وهو ميزة جاءت بيها #c حلت الكثير من المشاكل بسياقها. وقد وضع بشكل بسيط لتمكينك من البدء في كتابة الشيفرات والتكويد بشكل مباشر. أظنك تحتاجين متابعة كورس أحدث.
- 2 اجابة
-
- 2
-