Alfakiat

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

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

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

  • Days Won

    2

السُّمعة بالموقع

54 Excellent

1 متابع

  1. عند استخدام Route::resource لتعريف الموجهات يتم تعريفها لتستقبل GET, POST, PUT, DELETE https://i.suar.me/NG96V/l فبهذا الشكل لا يمكن تعريف التوجيه مرة أخرى بهذا الشكل Route::post("/cities",[citiesController::class,"store"]); وإنّما نكتفي بـ Route::resource فقط Route::resource('/cities',citiesController::class);
  2. يوجد العديد من مزودي خدمات الاستضافة المجانية ولكن لكل منها مزاياها وعيوبها: ففي 000webhost يتيح لك موقع واحد مجاني وحجم محدود لرفع الملفات. www.000webhost.com ولكن في Ebehost يتيح لك دومين فرعي مجاني ومساحة غير محددة بالإضافة لعدة ميزات يمكنك استخدامها مثل Softaculous ولوحة تحكم cPanel www.ebehost.com
  3. تتكون لغات البرمجة من عدة تعليمات برمجية يتم تنفيذها خلال عمل البرنامج ويجب الفصل بين هذه التعليمات بإشارة يفهمها المُترجم الخاص بالغة البرمجة فمثلًا في لغات البرمجة PHP, Java, C++ نستخدم الفاصلة المنقوطة : print(""); print("") ^ للفصل بين التعليمات البرمجية. وفي لغة Python يتم كتابة كل أمر في سطر منفصل, هكذا: print("") print("") ولأنّ لغة PHP تفصل بين التعليمات بفاصلة منقوطة ( ; ) وجب الفصل بين التعليمات في السطر رقم 30 والسطر رقم 34 بفاصلة منقوطة
  4. تُقسم برمجة الويب إلى قسمين: تصميم واجهات المستخدم برمجة Back-end أنت الآن تقف في القسم الأول وهو تصميم واجهات المستخدم, حيث يحتوي هذا القسم على الصور والأيقونات والنصوص التي يشاهدها المستخدم, وتقوم بعرضها بشكل ثابت ومباشر. للإنتقال إلى القسم الثاني, تحتاج إلى لغة برمجة لإنعاش روح الموقع, ومن هذه اللغات (PHP, C#, Java) تحيث تقوم لغات البرمجة على التحكم بالمدخلات من المستخدم وعرض نتائج على شكل تصاميم ونصوص سَبَقَ وأن تم تصميمها في المرحلة الأولى
  5. نقوم بالوصول لملفات blade باستدعائها باسم المسار كاملًا فعندما يكون الملف بداخل مجلد posts يكون الاستدعاء بالوصول إلى مجلد posts ثم اسم ملف blade المطلوب, هكذا: @extends('posts.layout') وكذلك الأمر ينطبق عندما يكون في مجلد آخر يتم استدعاؤه بالاعتماد على المجلد الخارجي, هكذا: @extends('component.layout')
  6. يمكنك الاطلاع على هذا الحل باستخدام Laravel حيث يمكنك تشغيل البرنامج والوصول إليه من الأجهزة الأخرى داخل الشبكة (Local Network) دون الحاجة لوجود استضافة خارجية
  7. بالإضافة لما قاله المدرب@عبود سمير: يظهر الخطأ بسبب عدم الوصول إلى الملف المحدد وذلك: إمّا أنّ الملف غير موجود أو أنّ مسار الملف خاطئ وللتأكد من مسار الملف نستخدم عدة طرق للكشف عنها 1. الطريقة الأولى: التأكد من صحة المسار النسبي والمسار المطلق فمثلًا لدينا هذه الملفات في موقع ما www.sample.com/ |- images/ | |--- image1.png | |--- image2.png | |--- image3.png | |- assest/ | |--- style.css | |--- comp.js | |- core/ | |--- core.php | |- index.php ونحن الآن في ملف core.php ونريد استدعاء الصورة image1.png, فكيف يتم استدعاؤها ؟ في المسار النسبي: يتم استدعاء مسار الصورة نسبةً للملف الذي نقف عليه, فيصبح مسار الاستدعاء هكذا: "../images/image1.png" وفي المسار المطلق: يكون الاستدعاء عن طريق مسار كاملًا بدءً من رابط الموقع وصولًا إلى الملف الهدف, فيصبح مسار الاستدعاء هكذا: "http://www.sample.com/images/image1.png" فيرجى التأكد من الطريقة المُتَّبعة في استدعاء المسار تحديدًا عند نقل الملفات من مكان لآخر 2. الطريقة الثانية: التأكد من إعدادات PHP قد يكون تضمين الملفات عن طريق URL في PHP متوقفًا ولتفعيل هذا الخيار, نقوم باستدعاء الدالة: ini_set("allow_url_include", "1") والخيار allow_url_include هو المسؤول عن إتاحة تضمين الملفات عن طريق URL أو أيقافها, لذلك نقوم بتفعيل هذا الخيار
  8. تتيح Laravel العمل إنشاء الجداول في قاعدة البيانات مع المرونة في تعديلها في وقت لاحق عن طريق التهجير مرة أخرى فعند القيام بإنشاء جدول نقوم بكتابة الأمر التالي: php artisan make:migration file_migration_name --create table_name ^^^^^^ حيث أنّ الأمر: --create يعني أن ملف التهجير الجديد يعمل على إنشاء جدول باسم "table_name" ماذا لو أردنا التعديل على جدول حالي ؟ ببساطة: نقوم بتعديل الأمر من (--create) إلى (--table) وتمرير اسم الجدول الحالي المُراد تعديله فيصبح هكذا: php artisan make:migration file_migration_name --table table_name ^^^^^ وبداخل الملف نضع التعديلات public function up() { Schema::table('posts', function($table) { $table->integer('new_col'); ... }); } ونضع كود rollback في الدالة down وهي الجزئية الخاصة بحذف الحقل عند تنفيذ أمر التراجع public function down() { Schema::table('posts', function($table) { $table->dropColumn('new_col'); }); } ولكن بعد تنفيذ أمر التهجير php artisan migrate لا يمكن التعديل على الملف السابق, بل نقوم بإنشاء ملف تهجير جديد ونكرر ما فعلناه
  9. يمكنك إضافة زر مشاركة عن طريق التوجيه لتطبيق واتس آب وإرفاق النص whatsapp://send?text=النص فيصبح الرابط كالآتي: <a href="whatsapp://send?text=النص">WhatsApp</a>
  10. انت تقوم بوضع ملف css في الملف الرئيسي حتى تستطيع الوصول إليهم بشكل مباشر
  11. نقوم بانشاء ملف css في public باسم styles.css واستدعائه في view <link rel="stylesheet" href="styles.css">
  12. يشير الرمز 5xx عادة إلى أخطاء البرنامج, ومن هذه الأخطاء: إصدار php في الخادم, غير متوافق مع إصدار php الذي كُتب به البرنامج فمثلًا: تم برمجة النظام باستخدام اصدار php7 ورفعه على الخادم الذي يعمل على إصدار php5 وفي هذه الحالة: يجب تغيير اصدار الخادم وتغييره لاصدار 7 أخطاء في ترجمة الكود المصدري: في بعض الحالات يقوم المترجم الموجود في الجهاز بالتعرف على رموز php مثل <? // البرنامج هنا ?> ولكن المترجم الموجود في الاستضافة لا يتعرف على رموز php إلا هكذا <?php // البرنامج هنا ?> هذه من أبرز المشاكل التي كانت سبب في ظهور الخطأ 5xx
  13. عند استخدام الدالة get() للحصول على البيانات, يتم ارجاع collection تحتوي كائنات لجميع السجلات التي تم استخراجها من قاعدة البيانات ولقراءة هذه الكائنات نقوم بعمل تكرار للوصول للبيانات, مثال: @foreach ($collection as $object) {{ $object->title }} @endforeach أو الحصول على قيمة عن طريق index محدد هكذا: {{ $collection[0]->title }} أو الحصول على أول كائن: {{ $collection->first()->title }} ولكن عند استعمال find() أو first() Page::find('page', 'about-me'); يتم ارجاع كائن واحد فقط وعندها يمكنك قراءة محتوياته بشكل مباشر {{ $page->title }}
  14. عند تنفيذ أمر تهجير البيانات php artisan migrate نقوم بإضافة الأمر التالي إليها: --pretend وهذا المسؤول عن طباعة أوامر SQL في terminal التي تم تنفيذها لتهجير البيانات إلى قاعدة البيانات فيصبح الأمر هكذا: php artisan migrate --pretend والنتيجة تظهر في terminal: Migration table created successfully. CreateUsersTable: create table "users" … CreateUsersTable: create unique index … CreatePasswordResetsTable: create table "password_resets" … CreatePasswordResetsTable: create index password_resets_email_index … CreatePasswordResetsTable: create index password_resets_token_index … ولحفظ النتيجة في ملف migrate.sql نقوم بتوجيه المخرجات من terminal إلى الملف المحدد بإضافة الأمر: > migrate.sql ولكن يتم حفظ المخرجات SQL مع زوائد إضافية مثل ("CreateUsersTable: " و "CreatePasswordResetsTable: ") كما ظهرت في Terminal ولفلترة النتائج من هذه الزوائد نقوم باستدعاء الأمر: --no-ansi المسؤول عن عدم طباعة هذه الزوائد عن أوامر SQL بذلك يكون لدينا المخرجات عبارة عن أوامر SQL فقط ويتم حفظها في ملف migrate.sql من خلال الأمر: php artisan migrate --pretend --no-ansi > migrate.sql
  15. يظهر هذا الخطأ بسبب أن القيمة null وهذا لا يُطبّق عليها الشرط string لأنّ null تعني بأنّه لا توجد قيمة أساسًا, وفي حالة عدم وجود قيمة فلا يمكننا اعتبارها string فيحصل الخطأ عند التحقق من صحتها لذلك يجب وضع قاعدة: 'nullable' في التحقق ليصبح هكذا: 'firstName' => 'string|max:255|nullable', 'lastName' => 'string|max:255|nullable' وبهذا يتم قبول القيمة إذا كانت خالية