لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 12/30/21 في كل الموقع
-
يتوجب وضع المسار المطلق absolute path للملف المراد التعامل معه، يمكنك نسخ كامل مسار الملف input file من خصائصه أو من مستعرض الملفات. و نضع المسار الكامل مع اسم الملف في دالة open مكان استخدامك لاسم الملف2 نقاط
-
1 نقطة
-
ماهي ابسط خوارزمية يمكن استخدامها اوالتمرن عليها بغرض انشاء تطبيق todo list عن طريق الجافاسكريبت1 نقطة
-
السلام عليكم ورحمة الله وبركاته ممكن حل تظهر عندي هدي المشكلة بعد تحديت الاندرويد Could not resolve all dependencies for configuration ':app:debugRuntimeClasspath'. Using insecure protocols with repositories, without explicit opt-in, is unsupp apply plugin: 'com.android.application' android { compileSdkVersion 31 defaultConfig { applicationId "com.icanstudioz.taxicustomer" minSdkVersion 16 targetSdkVersion 31 versionCode 11 versionName "2.1" multiDexEnabled true "testInstrumentationRunner "android.support.home_fragment.runner.AndroidJUnitRunner compileOptions{ sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } javaCompileOptions { annotationProcessorOptions { includeCompileClasspath true } } dependencies { implementation ('com.mapbox.mapboxsdk:mapbox-android-navigation-ui:0.16.0') { transitive = true } implementation 'com.mapbox.mapboxsdk:mapbox-android-navigation:0.16.0' implementation 'com.google.firebase:firebase-auth:21.0.1' implementation 'com.google.firebase:firebase-messaging:23.0.0' implementation 'com.paypal.sdk:paypal-android-sdk:2.15.3' implementation 'com.github.TheBrownArrow:PermissionManager:1.0.0' implementation 'de.hdodenhof:circleimageview:3.0.0' implementation 'gun0912.ted:tedbottompicker:1.2.6' implementation 'com.akexorcist:googledirectionlibrary:1.0.5' implementation 'com.loopj.android:android-async-http:1.4.9' implementation 'com.github.bumptech.glide:glide:4.7.1' implementation 'com.google.android.gms:play-services-maps:18.0.1' implementation 'com.google.android.gms:play-services-location:19.0.0' //implementation 'com.google.android.gms:play-services-places:16.0.0' implementation 'com.google.android.libraries.places:places:2.5.0' implementation 'com.google.firebase:firebase-database:20.0.3' implementation 'com.google.code.gson:gson:2.8.6' implementation 'com.android.support:appcompat-v7:+' implementation 'androidx.multidex:multidex:2.0.1' implementation 'androidx.cardview:cardview:1.0.0' implementation 'androidx.appcompat:appcompat:1.4.0' implementation 'com.google.android.material:material:1.4.0' implementation "androidx.navigation:navigation-fragment:2.4.0-rc01" implementation "androidx.navigation:navigation-ui:2.4.0-rc01" androidTestImplementation "androidx.navigation:navigation-testing:2.4.0-rc01" apply plugin: 'com.google.gms.google-services'1 نقطة
-
ابغا اسوي كلاسات للوورد بريس واستدعيها بال function بس مايتعرف عليها شلون اسوي هالشي1 نقطة
-
في فلاسك يمكنني تمرير بيانات قالب بالشكل التالي: render_template("hello.html", messages={'title':'hello world'}) ويمكنني إستخدام هذه البيانات في القالب نفسه من خلال الكود التالي ليتم عرض كلمة hello: {{ messages['title'] }} لكن ماذا إذا كان هناك مسار يؤدي إلى عرض نفس القالب: @app.route("/hello") def hello(): # هنا يتم تنفيذ بعض الأكود return render_template("hello.html") إذا أردت أن يتم تنفيذ نفس الأكواد كما في المثال السابق فيجب أن أستعمل الدالة redirect: return redirect("/hello", messages={"title":"hello world"}) لكن يبدو أنه لا يمكن إستخدام redirect لتمرير البيانات، حيث يظهر الكود السابق الخطأ التالي: TypeError: redirect() got an unexpected keyword argument 'messages' هل توجد طريقة لتمرير البيانات أثناء عمل إعادة توجيه redirect؟1 نقطة
-
مرحبا" ممكن المساعدة أنا عملت مشروع و لاكن القائمة العلوية عند تصغير حجم الشاشة ان حقل التنقل لا تعمل لا أعلم لماذا هل ممكن ان تكون من bootstrap؟1 نقطة
-
لحل المشكلة عليك حذف هذه الأسطر البرمجية <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"> <i class="fa fa-bars" aria-hidden="true"></i> </span> </button> وإضافة الـ button الصحيح الذي سوف يعمل مع القائمة <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> وبعدها سوف تعمل القائمة ، ولكن سوف تحتاجين إلى إعادة تنسيق الـ button فهو يظهر بحجم كبير جداً ، يجب عليك التعامل مع هذه التنسيقات حتى يصبح الـ button بشكل مناسب button{ border:none; color:white; padding:15px 32px; text-align:center; text-decoration:none; display:imline-block; font-size:47px; margin:10px 8px; cursor:pointer; background-color:#FB4934; width: 364px; // تحتاج للحذف height: 249px; // تحتاج للحذف } أيضاً باستخدام CSS يمكنك من ترتيب موضوعه في الشاشة وتنسيقه بشكل جميل1 نقطة
-
يمكنك إضافة الخاصية allowInsecureProtocol ضمن ملف gradle.build للمستودعات الموجودة ليتم تجاوز المشكلة، كالتالي allRepositories { repositories{ ... maven { url "http://dl.bintray.com/maven/" allowInsecureProtocol = true } } } أو بتبديل بروتوكول http ب htttps ضمن جميع المستودعات المعرفة1 نقطة
-
1 نقطة
-
سؤالي موجه لخبراء بلوجر وادسنس بخصوص توزيع الكلمات المفتاحية في المدونة . حاليا قمت بتغيير عنوان مدونتي ووصف البحث على امل استهداف كلمات مفتاحية محددة لزيادة سعر cpc . هل هذا جيد ام انه خطأ مني ارجوا التوضيح.1 نقطة
-
إن كان العنوان الجديد يحتوي على كلمات مفتاحية ويمكن للجمهور الوصول إليه بسرعة عبر محركات البحث فهذا أكيد يساعد في زيادة الأرباح ، من خلال وصول الجمهور إلى الموقع بشكل أسرع عبر محركات البحث ، لكن عليك الاهتمام أكبر في كتابة الكلمات المفتاحية في محتوى الموقع والاهتمام في تصميم الموقع لأن هذا يساعد في بقاء الجمهور في الموقع وأيضاً احتمالية رجوع الزائرين مرة أخرى للموقع .1 نقطة
-
ربما تودين أن تضعي قيمة افتراضية في حقل إدخال فيجب عليكي أن تقومي بوضع حقل إدخال بهذا الشكل <input type="text" id="text" value="Hsoub" /> فبالتالي يمكنك استخدام jQuery لجلب القيمة من داخل هذا الحقل بهذا الشكل <script> $(function(){ var text = $('#text').val(); alert(text); }); </script> حيث يمكنك استخدام متغير text الذي يحمل قيمة حقل الإدخال في أي مكان في كود jQuery.1 نقطة
-
اقصد انني اريد الربط بين قيمة ال input او النص الذي ساكتبه فيه في الmodal وقيمة نص موجود في عنصر داخل كود ال html1 نقطة
-
بالإضافة إلى إجابة وائل إن كنت تريد حذف جميع بيانات الجدول يمكنك في هذا الموقف إستخدام التعليمة DELETE مع وضع الشرط WHERE ب1 حتى تكون التعليمة بشكلٍ كامل على الشاكلة التالية DELETE FROM users WHERE 11 نقطة
-
عندما تقوم بإستخدام الtoken يمكنك جعلها من النوع JWT وبالتالي تقوم بإضافة كلمة سر إلى التوكين عند توليده من جهة الخادم وبالتالي عندما يقوم العميل بإرساله يقوم الخادم بالتأكد من صحته عبر الدالة verify , على سبيل المثال إن كنت تستخدم كلمة سر secret يمكنك التحقق من أن التوكين لم يتم التلاعب بها بالnode js عبر الشفرة التالية JWT.verify(token,'secret') .then(()=>doSomething()) .catch(err=>handleError(err)) إن كان التوكين تم التلاعب به سيتم إلقاء error وإستدعاء الدالة catch1 نقطة
-
نعم بإمكانك القيام بذلك لا يوجد مشكلة1 نقطة
-
نعم بإمكان المستخدم التعديل على الكوكيز لكن ميزتها عن ال local storage هي العمر الإفتراضي للقيمة. أما عن أنك تقوم بتعديل الكوكيز فيتعطل الموقع.. هذا لن يحدث , بسبب عملية المصادقة التي تتم بواسطة ال token , سوق أوضح لك الفكرة كالأتي: عندما تسجل دخولك إلى موقع مستقل يعطي المخدم token يتم تخزينه في المتصفح في ال cookies وهذا التوكين عبارة بجمع عدة بيانات وتشفيرها وأي تعديل على هذا التوكين من قبل المستخدم سوف تفشل عملية المصادقة بين المخدم والمستخدم ولن يعود بإمكانه القيام العمليات داخل الموقع. أي ان ممكن ان يتوقف الموقع عن العمل بالنسبة اليك أما عند باقي المستخدمين لن يحدث شيئ كهذا.1 نقطة
-
يمكنك استخدام الجلسات Sessions بحيث يمكنك توليد كود token و ترسله عند عملية إرسال البيانات و بالتالي يمكنك التحقق من هذا التوكن و من ثم بناءً عليه تدخل البيانات إلى قاعدة البيانات أو لا فمثلاً يمكنك إنشاء هذا التوكن باستخدام دالة bin2hex مثل $_SESSION['token'] = bin2hex(random_bytes(32)); ولجعل الكود أكثر فاعلية يمكنك التأكد بأن الجلسة معرفة أو لا باستخدام if مثل session_start(); if (empty($_SESSION['token'])) { $_SESSION['token'] = bin2hex(random_bytes(32)); } $token = $_SESSION['token']; ثم عند عملية الإرسال نتأكد من token المرسل و التوكن الذي تم حفظه في الجلسة و من ثم إذا كان نفس الشيء ندخل البيانات و إذا كان لا ، لا ندخلها. if (!empty($_POST['token'])) { if (hash_equals($_SESSION['token'], $_POST['token'])) { // هنا ندخل البيانات } else { كود في حالة عدم تساوي token } }1 نقطة
-
لقد قمت بإضافة نص على أحد الصور بالشكل التالي:- أولاً قمت بإضافة وسم HTML جديد لإضافة الوصف <div class="slider-item s1"> <img src="https://www.w3schools.com/howto/img_avatar.png" alt="Nature and sunrise"> <p class="text">Hello World</p> </div> ثم ثانياً أعطيت الكلاس text التنسيقات في CSS حتى يتمكن من الظهور فوق الصورة . .text { color: black; font-size: 20px; position: absolute; bottom: 5px; width: 100%; text-align: center; } يمكنك التحكم في موضع النص كما تريد. هذا ملف لتطلع عليه index.html1 نقطة
-
اشتهر استخدام منصة Heroku السحابية ضمن مجتمع مطوري Ruby on Rails ونالت فيه شعبية واسعة؛ إلا أن الخدمة لم تقتصر على مطوري Ruby وما يدور حولها بل تجاوزتهم إلى تقديم الدعم للغات برمجة مثل Node.js ،Java و PHP؛ من بين أخرى. توفّر Heroku خطّة اشتراك مجانية يمكن استخدامها لإدارة مشاريع صغيرة جدا أو لأغراض الاختبار. سنشرح في هذا الدرس كيفية الاستفادة من Heroku عبر هذه الخطة لنشر Deploying تطبيقات Laravel. إنشاء حساب على Heroku يجب أولا أن ننشئ حسابا على موقع الخدمة حتى يمكننا الاستفادة منها. التسجيل مجاني ولا يستغرق سوى دقائق. ستُعرَض عليك خلال عملية التسجيل خيارات للغة البرمجة التي تريد استخدامها، اختر PHP؛ مع العلم أن هذا الخيار لا يؤثّر على إمكانية استعمالك للغات برمجة أخرى مستقبلا. تثبيت Heroku Toolbelt الخطوة الثانية بعد إنشاء الحساب هي تثبيت أداة Heroku Toolbelt. تُستخدَم هذه الأداة، التي تعمل عبر سطر الأوامر، لإدارة جوانب عدّة من المشاريع المضافة إلى Heroku؛ ومن ضمنها إدارة عمليّة النشر، تهجير Migrating قاعدة البيانات والتخاطب مع خادوم Heroku. تتوفّر الأداة على وندوز، ماك وتوزيعة أوبونتو لينكس. نفّذ بعد تثبيت الأداة الأمر التالي: $ heroku login heroku-cli: Installing CLI... 21.83MB/21.83MB Enter your Heroku credentials. Email: mail@example.com Password (typing will be hidden): Logged in as mail@example.com انتظر قليلا حتى يكتمل تنزيل عميل Heroku ثمّ أدخل معلومات الاستيثاق الخاصّة بك (عنوان البريد وكلمة السر). نشر تطبيق Laravel على Heroku يمكننا الآن بعد التسجيل في Heroku وتثبيت الأداة Heroku Toolbelt نشرُ مشروع Laravel. نبدأ بإنشاء مشروع Laravel جديد (على الحاسوب الشخصي): $ composer create-project laravel/laravel dev.herokutest.com dev-develop Installing laravel/laravel (dev-develop 083db95...dac46617) - Installing laravel/laravel (dev-develop develop) Cloning develop ... Compiling views Do you want to remove the existing VCS (.git, .svn..) history? [Y,n]? Y Application key [9UCBk7IDjvAGrkLOUBXw43yYKlymlqE3Y] set successfully. ثم ننشئ ملفا باسم Procfile ونضعه في المجلد الجذر لمشروع Laravel. طريقة كتابة اسم الملفّ مهمة جدا (الحرف الأول كبير، ولا وجود لامتداد للملف). يقرأ Heroku هذا الملفّ لتحديد نوع العمليات التي سيجريها بعد نشر التطبيق. في حالة تطبيق Laravel فإن نوع العمليات المطلوب هو وِب web. نحدّد نوع خادوم الوِب المستخدم لتقديم التطبيق (Apache) والمجلّد الذي توجد به ملفات التطبيق المخصّصة للعرض، وهو في حالة Laravel المجلد public. يصبح ملفّ Procfile على النحو التالي: web: vendor/bin/heroku-php-apache2 public هذا فقط مثال على الخيارات المتاحة، يمكنك تغيير هذه الخيارات (خادوم الوِب مثلا) إن أردت ذلك. الخطوة الموالية لإنشاء ملفّ Procfile هي وضع المشروع تحت تصرّف نظام إدارة الإصدارات Git بإنشاء مستودع للمشروع: $ git init Initialized empty Git repository in /home/zeine77/dev.herokutest.com/.git/ $ git add . $ git commit -m "First commit" يسهّل استخدامُ Git كثيرا عمليةَ النشر، فإطار العمل Laravel يأتي مبدئيا بميزات خاصّة بنظام إدارة الإصدارات Git (مثل ملفات gitignore.)؛ كما أن Heroku أيضا يتفاعل مع مستودع Git المحلي لتسهيل النشر. راجع هذه المقالات لمعرفة المزيد عن Git. نحن الآن جاهزون لنشر التطبيق على Heroku. نستخدم Heroku Toolbelt لهذه المهمة: $ heroku create Heroku CLI submits usage information back to Heroku. If you would like to disable this, set `skip_analytics: true` in /home/zeine77/.heroku/config.json Creating app... done, ⬢ nameless-chamber-90421 https://nameless-chamber-90421.herokuapp.com/ | https://git.heroku.com/nameless-chamber-90421.git ينشئ الأمر heroku create اسما جديدا لمشروعك (أعطاني الاسم nameless-chamber-90421) ويعرّف رابطا يمكن عبره الوصول إلى التطبيق. لا يوجد على الرابط - لحد السّاعة - سوى صفحة مبدئية من Heroku. زيادة على الرابط والاسم، أنشأ الأمر السابق مستودع Git بعيدا. مستودع Git بعيد هو مستودع يضم ملفات مشروعك ولكنه يوجد في مكان آخر غير جهازك؛ يمكن دفع التغييرات إلى المشروع البعيد أو جلبها منه. سنكتفي في حالة Heroku بدفع التعديلات إلى المستودع البعيد، كما سنرى بعد قليل. يستخدم Heroku ملفات تسمى buildpacks (حزم بناء) لمعرفة البرامج التي يجب عليه إعدادها على الخادوم بعد تثبيت التطبيق؛ لذا يجب أن نحدّد واحدا. اخترنا ملفّ buildpack الرسمي من Heroku الخاص بتطبيقات PHP؛ نستخدم الأمر config:add في Heroku Toolbelt لتحديد هذا الملف: $ heroku config:add BUILDPACK_URL=https://github.com/heroku/heroku-buildpack-php Setting BUILDPACK_URL and restarting ⬢ nameless-chamber-90421... done, v3 BUILDPACK_URL: https://github.com/heroku/heroku-buildpack-php تستخدم تطبيقات Laravel مفتاح تعميّة Encryption key لتعمية معلومات جلسة المستخدم ومعلومات أخرى؛ توجد قيمة هذا المفتاح في متغيّر البيئة APP_KEY. يوجد المتغيّر APP_KEY في الملفّ env.، إلا أن الملف env. لا يدخل في إطار الملفات التي يتعامل معها Git، نظرا لوجوده في الملفات المحدّدة في gitignore.. سنحتاج إذن لتوليد مفتاح تعميّة لاستخدامه على خادوم Heroku. تُستخدم أداة artisan لتوليد مفتاح تعمية على النحو التالي: php artisan key:generate --show يولّد الأمر أعلاه مفتاح تعميّة ويعرضه على سطر الأوامر؛ إلا أننا نريد أن نخزّن المفتاح على الخادوم؛ نستخدم Toolbelt لهذا الغرض على النحو التالي: heroku config:set APP_KEY=$(php artisan --no-ansi key:generate --show) Setting APP_KEY and restarting ⬢ nameless-chamber-90421... done, v7 APP_KEY: base64:jp40IC7SV5eJ5IhjQYwqk/KXJG0uS+ZhCqSGwkwgELs= يضبط الأمر السابق قيمة المتغيّر APP_KEY على الخادوم لتساوي نتيجة تنفيذ الأمر php artisan --no-ansi key:generate --show. حان الآن وقت النشر فعليا؛ ندفع التغييرات في المستودع المحلي إلى المستودع البعيد باستخدام Git على النحو التالي: $ git push heroku master Counting objects: 103, done. Delta compression using up to 4 threads. Compressing objects: 100% (84/84), done. Writing objects: 100% (103/103), 43.87 KiB | 0 bytes/s, done. Total 103 (delta 5), reused 0 (delta 0) remote: Compressing source files... done. remote: Building source: remote: remote: -----> Fetching set buildpack https://github.com/heroku/heroku-buildpack-php... done remote: -----> PHP app detected remote: remote: ! WARNING: Your 'composer.json' contains a non-'stable' setting remote: for 'minimum-stability'. This may cause the installation of remote: unstable versions of runtimes and extensions during this deploy. remote: It is recommended that you always use stability flags instead, remote: even if you have 'prefer-stable' enabled. For more information, remote: see https://getcomposer.org/doc/01-basic-usage.md#stability remote: remote: -----> Bootstrapping... remote: -----> Installing platform packages... remote: - php (7.0.7) remote: - ext-mbstring (bundled with php) remote: - apache (2.4.20) remote: - nginx (1.8.1) remote: -----> Installing dependencies. (...) remote: -----> Compressing... remote: Done: 15.5M remote: -----> Launching... remote: Released v4 remote: https://nameless-chamber-90421.herokuapp.com/ deployed to Heroku remote: remote: Verifying deploy... done. To https://git.heroku.com/nameless-chamber-90421.git * [new branch] master -> master إن نظرت إلى لوحة التحكّم في Heroku ستجد سجلا بالإجراءات السابقة. هذا كلّ ما في الأمر؛ اكتمل نشرُ تطبيقك الآن ويمكنك الوصول إليه على الرابط المذكور أعلاه. يجب أن تظهر صفحة Laravel المبدئية. تذكّر أن الرابط المنشَأ سابقا موجود فقط لأغراض الاختبار والتجربة، عندما يكون تطبيقك جاهزا لتلقي الجماهير يمكنك استخدام نطاقك الخاص وربطه بالتطبيق. تهجير قاعدة البيانات نشرنا في الخطوات السابقة تطبيق Laravel جديدا؛ إلا أن هذه الخطوات لن تكون كافية إن كان التطبيق يعتمد على قاعدة بيانات. ستحتاج في هذه الحالة إلى التأكد من تنفيذ جميع التهجيرات العالقة بعد كلّ عملية نشر. بما أن التطبيق جديد على Heroku فسنحتاج لتموين Provision قاعدة البيانات؛ نستخدم Toolbelt لهذا الغرض: $ heroku addons:create heroku-postgresql:hobby-dev Creating postgresql-rigid-59415... done, (free) Adding postgresql-rigid-59415 to nameless-chamber-90421... done Setting DATABASE_URL and restarting nameless-chamber-90421... done, v10 Database has been created and is available ! This database is empty. If upgrading, you can transfer ! data from another database with pg:copy Use `heroku addons:docs heroku-postgresql` to view documentation. ينشئ الأمر السابق قاعدة بيانات PostgreSQL معرّفة بالخطة المجانيّة hobby-dev التي تمكننا من إنشاء قاعدة بيانات مجانية على Heroku، على ألا يتجاوز عدد أسطرها العشرة آلاف. توجد خطط أخرى يمكن النظر فيها لإيجاد ما يناسبك إن كنت تريد استخدام Heroku بيئةً للإنتاج. يعود السبب في اختيارنا لقاعدة بيانات PostgreSQL بدلا من MySQL إلى أن دعم الأخيرة على Heroku محدود، ستجد لهذا السبب أن الكثير من التوثيق حول خدمة Heroku يعتمد على قاعدة البيانات PostgreSQL. ثم نفذ الأمر التالي للحصول على المزيد من التفاصيل عن قاعدة البيانات ومن ضمنها الاستيثاق (تأكد من اسم التطبيق): $ heroku config --app nameless-chamber-90421 | grep DATABASE_URL DATABASE_URL: postgres://USERNAME:PASSWORD@HOSTNAME:PORT/DATABASE يظهر في نتيجة الأمر اسمُ المستخدم USERNAME، كلمة السّر PASSWORD، اسم المضيف HOSTNAME، المنفذ PORT واسم قاعدة البيانات DATABASE. لن يكون ضروريا حفظ هذه الإعدادات فالمتغير DATABASE_URL الذي يخزّنها محفوظ تلقائيا في إعدادات الخادوم. يمكنك تسهيل إدارة قاعدتي البيانات على طرفيْ العمل (بيئة التطوير وبيئة الإنتاج) بضبط متغيّر بيئة باسم DATABASE_URL على جهازك المحلي وتخزين إعدادات قاعدة البيانات فيه ثم استخدامه لإعداد اتصال Laravel بقاعدة البيانات. ستحتاج لتثبيت PostgreSQL على جهازك إن لم يكن مثبتا مسبقا. يستعمل Laravel مبدئيا قاعدة بيانات MySQL، لذا يجب أن نعدّه لاستخدام PostgreSQL. نفتح ملفّ إعداد الاتصال بقاعدة البيانات config/database.php ونبحث عن السطر التالي: 'default' => env('DB_CONNECTION', 'mysql'), ثم نعدّله على النحو التالي: 'default' => env('DB_CONNECTION', 'pgsql'), ثم ننتقل إلى المقطع الخاصّ بإعداد PostgreSQL ضمن ملفّ إعداد الاتصال ونعدّله ليصبح كالتالي: 'pgsql' => [ 'driver' => 'pgsql', 'host' => parse_url(getenv("DATABASE_URL"))["host"], 'database' => substr(parse_url(getenv("DATABASE_URL"))["path"], 1), 'username' => parse_url(getenv("DATABASE_URL"))["user"], 'password' => parse_url(getenv("DATABASE_URL"))["pass"], 'charset' => 'utf8', 'prefix' => '', 'schema' => 'public', ], احفظ التعديلات ثم تأكد من أن اتصال التطبيق بقاعدة البيانات (محليّا)؛ يمكنك إنشاء نموذج في Laravel وتهجير مرافق له لغرض اختبار الاتصال بقاعدة البيانات. نفذ بعد التأكد من إعداد قاعدة البيانات التعديلات التي أضفتها إلى منطقة الإدارج في Git ثم أودعها في المستودع وأرسلها إلى المستودع البعيد على الخادوم: $ git add . $ git commit -m "Updated database configuration" $ git push heroku master يمكنك الآن تنفيذ التهجير على قاعدة البيانات على الخادوم عن طريق Toolbelt كالتالي: $ heroku run php artisan migrate --app nameless-chamber-90421 Running `php artisan migrate` attached to terminal... up, run.6981 ************************************** * Application In Production! * ************************************** Do you really wish to run this command? [y/N] y Migration table created successfully. Migrated: 2014_10_12_000000_create_users_table Migrated: 2014_10_12_100000_create_password_resets_table Migrated: 2015_01_30_032004_create_todolists_table.php ترجمة -وبتصرّف- للمقال Deploying a Laravel Application to Heroku لصاحبه W. Jason Gilmore.1 نقطة