-
المساهمات
6975 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
218
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Wael Aljamal
-
يفترض أن تعمل بأحد الشكلين ->whereDate('حقل التاريخ', '=', date('Y-m-d')) ->whereDate('حقل التاريخ', date('Y-m-d')) // == إن whereDate لا تنتمي للصنف collection فلن تعمل في حالتك، where تعمل وهذا المطلوب.
- 5 اجابة
-
- 1
-
لاحظ أن الخطأ بسبب مشكلة صلاحية، توجه إلى المسار android/app/src/main/AndroidManifest.xml ثم أضف الصلاحيات الخاصة بالكاميرا (أول سطر ضروري فقط) <!-- Required --> <uses-permission android:name="android.permission.CAMERA" /> <!-- Include this only if you are planning to use the camera roll --> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- Include this only if you are planning to use the microphone for video recording --> <uses-permission android:name="android.permission.RECORD_AUDIO"/> وفي الملف android/app/build.gradle: android { ... defaultConfig { ... missingDimensionStrategy 'react-native-camera', 'general' // <--- insert this line } } والتحقق أن JDK >= 1.7 and your buildToolsVersion >= 25.0.2 jitpack added في الملف android/build.gradle ^^^^^^^^ allprojects { repositories { maven { url "https://www.jitpack.io" } maven { url "https://maven.google.com" } } } هذا حسب التوثيق، جميع الأمور مذكورة (تابع جميع أجزاء أندرويد)
- 15 اجابة
-
- 1
-
تمام، يمكن تطبيق دالة المقارنة whereDate للتاريخ دالة whrerTime للوقت أو where نمرر لها اسم العمود الأول ثم معامل المقارنة ثم تاريخ اليوم الحالي <?php {{ $projects->()where('nextdate', '=', (new DateTime)->format('Y-m-d') )->count }} ^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ يمكن جلب تاريخ اليوم من خلال: date("Y-m-d H:i:s"); date("Y-m-d"); now()->format('Y-m-d') (new DateTime)->format('d-m-Y'); وغيرهم يمكن الاستعانة بحزمة Carbon <?php public function myDate($query) { // الوقت الحالي $now = Carbon::now(); // قصر الوقت لتاريخ $date = Carbon::parse($now)->toDateString(); // قصر الوقت لتوقيت $time = Carbon::parse($now)->toTimeString(); return $query ->whereDate('published_at', '<', $date) // مقارنة تاريخ ->orWhere(function($query) use ($date, $time) { $query ->whereDate('published_at', '=', $date) ->whereTime('published_at', '<=', $time); // مقارنة وقت }); } يوجد دوال أخرى مثل: whereYear whereMonth whereDay
- 5 اجابة
-
- 1
-
يحتاج ظهور التطبيق في قائمة البحث الانتظار عدة أيام حتى يظهر , و في حالة وجود تطبيقات مشابهة و بنفس الاسم وتاريخ نشرها أقدم من تطبيقك فسوف تظهر قبله ويكون لها أولوية و يكون تطبيقك في الصفحات التالية. الحل: الاهتمام بوصف التطبيق و اسمه (اكتب ميزات التطبيق وما يقدمه للمستخدم وكيف يعمل ومجال عمله) أي مثل مقالة مختصرة فيها كلمات دلالية تزيد معدل الوصول لتطبيقك عند عمل بحث، و محاولة تمييزه بكلمات دليلة تدل عليه مما تساعد في تقدمه في نتائج البحث الأولى. سوف يظهر تطبيقك مع مرور الوقت في الصفحات الأولى بعد زيادة عدد الزيارات و التحميلات عليه.
- 1 جواب
-
- 1
-
كما يبدو أن هذه كلمات يدخلها المسؤول عن الموقع Admin وبذلك، يتوجب إدخال هذه البيانات مترجمة لأكثر من لغة، أي عند إضافة تصنيف جديد، نضيف لقاعدة البيانات اسمه بالعربية و الانكليزية وغيرها. أي سيكون لجدول قاعدة البيانات عدة حقول بعدد اللغات، Category Table id name_ar name_en ... 1 لحم meat 2 خضار vegetables وسيكون لاستمارة HTML Form حقل لكل لغة، و نقوم بإسناد هذه الأسماء، ثم نجلبهم حسب اللغة $lang = $setting['lang']; // ar $filed = 'cat_name_' . $lang; cat_name = $cat[$filed]; خضار يمكن وضع المنطق في دالة لترتيب الكود.
-
أرجو مشاركة الرابط للمعاينة
- 6 اجابة
-
- 1
-
توفر لغة PHP دوال سحرية magic methods ومنها دالتين __get __set تستخدمان لقراءة قيم خاصيات الكائنات وإسناد قيم لها على الترتيب. <?php class MyClass { private $Field1; private $Field2; // قراءة قيمة خاصية public function __get($property) { if (property_exists($this, $property)) { return $this->$property; } } // إسناد قيمة خاصية public function __set($property, $value) { if (property_exists($this, $property)) { $this->$property = $value; } return $this; } } ?> للدوال السابقة بعض المساوئ، صعوبة و تعقيد تخصيص التحقق من إدخال قيم معينة لخواص معينة (قبول أرقام موجبة لبعض القيم و تواريخ لبعضها) صعوبة عمل تنسيق للمخرجات/ مثل تنسيق التاريخ و العملات. عدم التفريق بين محددات الوصول للمعاملات لذلك من الأفضل تخصيص دالة لكل معامل من خواص الصنف و التعامل معها بالطريقة التي تناسبها أي تطبيق دالة set و get خاصة لكل خاصية GET => $this->getProperty() SET => $this->setProperty($value) وتطبيقها بشكل بسيط (يمكن إضافة التحقق و تخصيص الخرج لكل خاصية) public function getField1() { return $this->Field1; } protected function setField2($x) { $this->Field2 = $x; } مثال: class Person { private $name = ''; private $birth_date; public function setName($name) { $this->name = $name; } public function getName() { return $this->name; } public function getBirthDate($format='Y-m-d') { //format $birth_date ... //$birth_date = ... return $birth_date; } public function setBirthDate($birth_date) { //if($birth_date is not valid) throw an exception ... $this->birth_date = $birth_date; } public function getAge() { //calculate age ... return $age; } } https://wiki.hsoub.com/PHP/magic
- 3 اجابة
-
- 1
-
نعم الطريقة صحيحة. عند إعطاء أي حاوية أو عنصر الخاصية Position : fixed سوف ينفصل عن مستوى صفحة HTML أي تعتبر أن له طبقة مختلفة، وسوف يحل محله العنصر التالي في ترتيب صفحة HTML وبذلك لنحافظ على ظهور العنصر الذي أسفله، نقوم بعمل إزاحة من الأعلى من خلال الخاصية margin-top لتبتعد عن الجزء العلوي للعنصر body (الحافة الداخلية) حيث أصبح هذا العنصر هو الذي يسبق باقي أجزاء الصفحة و ليس العنصر ذو Position : fixed، أي سوف ينزلق أسفله، و بذلك نعيده لمكانه بعمل إزاحة من الأعلى. موسوعة حسوب position#fixed
- 2 اجابة
-
- 1
-
يمكن دفع المشاريع التي هي من نفس النوع بطريقة بسيطة، وهي أن تكون هي نفسها في مجلد واحد في حاسوبك المحلي، سوف تقوم بإنشاء المستودع لمشاريع فلاتر في مجلد Flutter، و في حاسوبك يكون كل المشاريع ضمن مجلد واحد، ثم تقوم بدفع مجلد Flutter لمستودع غيت هاب. Projects Flutter Flutter_1 Flutter_2 Flutter_3 Laravel Laravel_1 Laravel_2 Laravel_3 لكن الأفضل هو وجود مستودع لكل مشروع منفضل، يمكنك لاحقا ضمن غيت هاب GitHub عمل فلترة لنتائج البحث وجلب المشاريع التي هي من نفس النوع، لأن وجود مستودع لجميع المشاريع هو أمر خطر و غير محبذ. حذف مشاريع عن طريق الخطأ بطيء في عمليات دفع و سحب التعديلات لأن المستودع يصبح ضخم و كبير حيث أن حلول دفع عدة مشاريع لنفس المستودع تكون بتسميه فرع مختلف لكل منهم و ممكن عن طريق الخطأ دفع ملفات من مشروع لآخر.. في حال عمل عدة مستودعات محلية (لكل مجلد مشروع) يمكنك دفعهم لنفس المستودع مع تغيير الاسم # repo 1 git push origin Flutter:Flutter-1 # repo 2 git push origin Flutter:Flutter-2 # repo 3 git push origin Laravel:Laravel-1 # repo 4 git push origin Laravel:Laravel-2 وهو شيء لا أنصح به
- 2 اجابة
-
- 1
-
حاول عمل توقيع جديد للتطبيق، لأنه من غير المفيد استخدام التوقيع السابق، كما أن المبرمج يحذفه عند رفع المشروع. قم ضمن أندرويد استديو بالدخول لتبويب Terminal ثم نفذ الأمر: keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key سيتم توليد مفتاح خاص. في حال أردت استعراض التوقيع ممكن بالأمر: keytool -list -v -alias key -keystore android/app/key.jks في حال وجود اختلافات لديك، من الأفضل التوجه للتوثيق الرسمي android app-signing #generate-key
- 1 جواب
-
- 1
-
كلاهما يمكنهما القيام بنفس الأمر، حيث أن لا فرق بين لغات البرمجة، الأفضلية نسبياً و الشهرة أكثر لبيئة Laravel فهي أقوى. اختر حسب إتقانك للغات، إن كنت تجيد جافاسكربت اختر node وإلا فإن كنت تعلمت PHP تابع مع Laravel. أرجو البحث في الموقع عن الأسئلة المكررة فسوف تجد العديد من الإجابات:
-
حاول البحث ضمن شركات الاتصال المحلية في بلدك إن كانت توفر هذه الخدمة (أو في البلدان التي تريد تفعيل الخدمة فيها للزبون لديك)
- 8 اجابة
-
- 1
-
مرحبا موسى، طبعا من الأفضل دراسة الأساسيات أولاً و حتى التطبيق مع المدرب و البدء بممارسة كتابة الأكواد و حل الأخطاء البسيطة التي تظهر لك، لتكون مجهزاً للبدء في القسم التالي أي الأصعب وأنت متعود على طريقة مشاهدة الدورة وزيادة تمرسك في كتابة التعليمات البرمجية، طبعا يوجد ملاحظات في الدروس و التعليقات في جميع المسارات و دروسهم وأنصح بمتابعة كل شيء لأن الفائدة أكبر، ومعك كل الوقت في الدراسة، فأرجو التركيز على الأساسيات.