-
المساهمات
5232 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
52
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Adnane Kadri
-
مبدئيا، لا يظهر بالشيفرة أي خطأ. ما تحتاج التحقق منه هو: من أن مسار الصورة المسند صحيح. من ما ان كانت هنالك أي رسالة خطأ تظهر بخصوص تنفيذ الشيفرة. من أن david_locations قائمة وليست فارغة قبل استخدام القيم منها. يمكنك اضافة عبارة شرطية على سبيل if david_locations: للتحقق من وجود على الأقل وجه واحد. كما أنه يفضل تغيير حجم الصورة إلى حجم معقول قبل تحميلها باستخدام resize لتجنب مشاكل الأداء. في حالة ظهور أي رسالة خطأ، يرجى ارفاقها.
- 8 اجابة
-
- 1
-
-
مبدئيا، العملية تحتاج الى تراكم معلومات والمسير وفق مخطط واضح لمدة معتبرة من الزمن. ولذلك، يقترح التعلم بجانب العمل في حال تطلب الحاجة الى ذلك نظرا لأن المدة الزمنية قد تكون طويلة قليلا، خصوصا أن هنالك الكثير من عروض العمل التي لا تحتاج خبرة شاملة بل تحتاج تخصصات فرعية مثل تطوير الواجهات الأمامية وما الى ذلك. وعموما، لا يتوقف أحد عن التعلم في هذا المجال. فهو مجال متجدد ويحتاج متابعة وتطويرا دوريا ولا ينبغي التوقف عن التعلم والتحصيل مهما بلغ مستوى الشخص، لأن هذا سيحد من قدراته ولا يجعله يواكب التطورات. بالنسبة لعمل مطوري الواجهات الأمامية، فهو يختلف بحسب طبيعة المشاريع التي يشتغلون فيها. فبعض المشاريع يكونون فيها حلقة وفردا من أعضاء الفريق الذين يتم ادارتهم من قبل مدير منتج أو قائد فريق ويطلب منهم مهاما تتناسب مع قدراتهم ومهاراتهم، وحتى التنسيق بين مطور الواجهة الأمامية ومطور الواجهة الخلفية يتم من خلال توجيهات مدير المنتج. أما بعض المشاريع الأخرى يكونون فيها الوحيدين المشتغلين على المشروع، وهاته المشاريع التي تكون ثابتة المحتوى مثل : صفحات الهبوط، واجهات الويب .. الخ.
- 3 اجابة
-
- 1
-
-
الأمر بسيط، قم بتضمين ملفات التنسيقات وملفات الجافاسكربت المبنية في ملف layout العام، وابدأ باستعمال المكونات الجاهزة من القالب بنسخها ولصقها.
-
ملفات الخطوط سيتم التعامل معها بشكل تلقائي في vite، سوف لن تحتاج أي محمل مخصص. أما بخصوص الوحدات والاضافات الموجودة في webpack فسوف تحتاج استعمال مكافئاتها في vite، ابحث عن مثيلاتها في vite. أيضا، يفترض أن تقوم بأخذ نسخة المشروع المبنية وليس تلك الخاصة ببيئة التطوير، أي أنك تحتاج تنفيذ npm run build لتخريج مجلد dist والذي سوف يتم ربطه مع المشروع وليس ذاك الخاص بملفات التطوير.
-
بعد الانتهاء من تطوير التطبيق، سوف تحتاجين تخريج نسختين، واحدة للويب وأخرى لتطبيق جوال، أندرويد أو IOS. وفي ذلك، تحتاجين فتح المشروع في نافذة موجه أوامر CMD وتنفيذ الأمر: flutter build apk # لنظام Android flutter build ios # لنظام iOS flutter build web # لتطبيق الويب لتخريج ملفات الجوال والويب، لنظام Android قم بتحميل ملف APK الذي تم إنشاؤه إلى Google Play Console. ولنظام iOS: قم بتحميل التطبيق إلى App Store Connect باستخدام Xcode. ونفس الشيء بالنسبة لتطبيق الويب على الاستضافة (قومي بتفريغ محتويات مجلد build/web داخل مجلد public_html على الاستضافة).
-
يمكن أن نقول أن تركيب ثيم Bootstrap 5 مبني على ويباك في تطبيق لارافيل يتبع المراحل التالية: تثبيت مختلف الاعتماديات اللازمة في تطبيق لارافيل التي تتعلق بالثيم، مثال: npm install @fortawesome/fontawesome-free bootstrap @popperjs/core . تضمين مختلف ملفات التنسيقات بملفات التنسيقات التي ينشئها لارافيل ابتداءا، مثل ملف app.scss: @import './theme/style' . تضمين مختلف ملفات الجافاسكربت بملفات الجافاسكربت التي ينشئها لارافيل ابتداءا، مثل app.js: require('./theme/index.js') . اعداد vite وتثبيت اعتماديات node بتطبيق لارافيل: npm install . أنشئ ملفا للنسق العام، وسمه app.blade.php وضع فيه المحتوى المكرر من القالب: <!DOCTYPE html> <html lang="ar" dir="rtl"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>متجر عربي</title> @vite(['resources/scss/app.scss', 'resources/js/app.js']) </head> <body> <div class="container-fluid"> <!--الشريط العلوي--> <div class="row"> <nav class="navbar custom-navbar navbar-expand-lg"> <div class="container px-0"> <div class="navbar-header"> <button class="navbar-toggler btn btn-icon" data-bs-toggle="collapse" data-bs-target="#navbar-collapsed-menu" aria-controls="navbar-collapsed-menu"> <i class="fas fa-bars fa-xl"></i> </button> <a href="./checkout.html" class="d-lg-none btn btn-icon"> <i class="fas fa-shopping-cart fa-lg"></i> </a> <a href="." class="me-5"> <img src="./images/logo.png" alt="متجر عربي"> </a> </div> <form class="d-flex align-items-center inline-form"> <input class="form-control custom-form-control" type="search" placeholder="كلمة البحث .."> <div class="dropdown categories"> <a class="nav-link dropdown-toggle custom-btn" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false"> اختر فئة </a> <ul class="dropdown-menu custom-dropdown-menu"> <li> <div class="checkbox ms-2"> <label> <input type="checkbox" name="search-category" value="men"> رجالي </label> </div> </li> <li> <div class="checkbox ms-2"> <label> <input type="checkbox" name="search-category" value="women"> نسائي </label> </div> </li> <li> <div class="checkbox ms-2"> <label> <input type="checkbox" name="search-category" value="kids"> أطفال </label> </div> </li> </ul> </div> <button class="btn search-btn" type="submit">ابحث</button> </form> <div class="collapse navbar-collapse" id="navbar-collapsed-menu"> <ul class="navbar-nav ms-auto"> <li class="nav-item"> <a class="nav-link" href="./index.html">الصفحة الرئيسية</a> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown2" role="button" data-bs-toggle="dropdown" aria-expanded="false">أقسام المتجر</a> <ul class="dropdown-menu custom-dropdown-menu"> <li> <a class="dropdown-item" href="#">رجالي</a> </li> <li> <a class="dropdown-item" href="#">نسائي</a> </li> <li> <a class="dropdown-item" href="#">أطفال</a> </li> </ul> </li> <li class="nav-item"> <a class="nav-link" href="./search.html">البحث المتقدم</a> </li> <li class="nav-item active"> <a class="nav-link" aria-current="page" href="./contact.html">تواصل معنا</a> </li> <li class="d-none d-lg-block mt-2"> <a href="checkout.html" id="btn-shopping-cart" class="btn btn-icon" title="عربة الشراء" data-bs-toggle="tooltip" data-bs-placement="bottom"> <i class="fas fa-shopping-cart"></i> </a> </li> </ul> </div> </div> </nav> </div> <!--نهاية الشريط العلوي--> <div class="container"> @yield('content') </div> <!--تذييل الصفحة--> <footer class="row"> <div id="brand-logos" class="text-center"> <span>المتجر وكيل مُعتمد لكبرى الشركات العالمية</span> <div class="img-container"> <img src="./images/lacoste.png" alt="Lacoste"> <img src="./images/adidas.png" alt="Adidas"> <img src="./images/puma.png" alt="Puma"> <img src="./images/polo.png" alt="Polo"> </div> </div> <div id="footer-nav" class="text-center"> <div class="footer-logo"> <a href="./"> <img src="./images/logo_footer.png" alt="عربي"> </a> </div> <div class="footer-nav-links d-none d-md-block my-5"> <a href=".">الصفحة الرئيسية</a> <a href="search.html">البحث المتقدّم</a> <a href="contact.html">تواصل معنا</a> </div> <div class="newsletter d-flex align-items-center justify-content-center col-md-6 offset-md-3"> <form> <label for="footer-email"> تابع النشرة البريديّة لأحدث العروض </label> <br> <div class="input-group"> <input id="footer-email" class="form-control custom-form-control" type="email" placeholder="البريد الإلكتروني" name="email" required> <button type="submit" class="btn custom-btn-warning"> متابعة </button> </div> </form> </div> </div> <div id="footer-copyright-social"> <div class="container"> <div class="clearfix"> <div id="copyright" class="float-start"> </div> <div id="social-icons" class="float-end"> <a href="https://www.facebook.com"> <i class="fab fa-facebook-square fa-lg"></i> </a> <a href="https://www.twitter.com"> <i class="fab fa-twitter-square fa-lg"></i> </a> <a href="https://www.instagram.com"> <i class="fab fa-instagram fa-lg"></i> </a> </div> </div> </div> </div> </footer> <!--نهاية تذييل الصفحة--> </div> </body> </html> . البدء في استعمال مكونات وملفات التطبيق بداخل ملفات blade في لارافيل، مثال - صفحة المراسلة: @extends('layouts.app') @section('content') <!--عناصر التّنقّل الفرعيّة--> <div class="row" area-label="breadcrumb" style="--bs-breadcrumb-divider: '>';"> <ol class="breadcrumb custom-breadcrumb"> <li class="breadcrumb-item"> <a href=".">الصفحة الرئيسية</a> </li> <li class="breadcrumb-item active">تواصل معنا</li> </ol> </div> <!--نهاية عناصر التّنقّل الفرعيّة--> <div id="contact-options" class="row mb-4"> <!--معلومات التواصل--> <div class="col-lg-3 offset-lg-2"> <h4 class="heading-with-border-bottom "> معلومات التواصل </h4> <div id="contact-info" class="mb-4"> <div> <i class="fas fa-phone fa-lg"></i> 974.4422.7813 </div> <div> <i class="fas fa-envelope fa-lg"></i> info@araby.com </div> <div> <i class="fas fa-map-marker-alt fa-lg"></i> العنوان: الإمارات العربية المتحدة، دبي، برج خليفة </div> </div> <!--قسم الاشتراك بالنّشرة البريدية--> <h4 class="heading-with-border-bottom">اشترك بالنشرة البريدية</h4> <form id="form-subscription"> <div class="input-group"> <input type="email" class="form-control custom-form-control" placeholder="البريد الإلكتروني" name="email" required> <button class="btn custom-btn-warning" type="submit"> متابعة </button> </div> </form> </div> <!--نهاية معلومات التواصل--> <!--قسم اترك رسالة--> <div class="col-lg-6"> <h4 class="pb-2">اترك رسالة</h4> <form> <div class="row"> <div class="col-md-6"> <input class="form-control custom-input-details custom-form-control" name="name" type="text" placeholder="الاسم" required> </div> <div class="col-md-6"> <input class="form-control custom-input-details custom-form-control" name="email" type="email" placeholder="البريد الإلكتروني" required> </div> </div> <div class="mt-3"> <textarea class="form-control custom-input-details custom-form-control" name="message" placeholder="نص الرسالة" required></textarea> </div> <div class="d-flex justify-content-end"> <button type="submit" class="btn custom-btn-warning custom-btn-with-icon"> <span> إرسال الرسالة <i class="far fa-paper-plane"></i> </span> </button> </div> </form> </div> <!--نهاية قسم اترك رسالة--> </div> @endsection . يمكنك جعل باقي الصفحات تأخذ نفس المنحى.
-
لا يتم رفع الملفات بشكل مباشر الى قواعد البيانات عادة، بل يتم رفعها الى نظم الملفات ويتم حفظ مسارات اليها في قاعدة البيانات ليتم عرضها عند الاستعلام. وطريقة خالد في الإجابة السابقة تقتضي ذلك. هنالك طريقة أخرى، قد يمكن اعتبارها حلا مؤقتا نسبيا. وهي عن طريق تحويل هاته الملفات الى سلاسل نصية مكودة بـ base64، ولاحقا يتم الغاء تشفيرها بها لتعود على هيئتها. // قراءة ملف البي دي اف او التقاطه من الطلبية $pdfContent = file_get_contents($pdfFilePath); // تحويله $base64String = base64_encode($pdfContent); // حقنه في قواعد البيانات $sql = "INSERT INTO files (encoded_string) VALUES ('$base64String')"; يرجى الاشارة أيضا الى أن الحقل encoded_string يجب أن يستوعب أعداد محارف كبيرة، لأن السلسلة الناتجة ستكون كبيرة جدا.
-
الشيفرة ببساطة تقوم بعمل حلقة تكرارية لإنشاء تسلسل مصفوفات باستخدام قائمة التكرار list comprehension، ولفهم العبارة لنجزء الشيفرة لـ: [..]، وتعني أن ناتج ما بين الأقواس يتم وضعه في مصفوفة. [i for i in range(5)]، ويتم هاهنا تكرار i من أجل i أقل من 5، أي الناتج: [0,1,2,3,4]، ولنسميها j فتكون: [j for j in range(6)] . يتم تكرار j من أجل j أقل من 6 فتكون: [j, j, j, j, j, j] فيكون الناتج: [[0,1,2,3,4], [0,1,2,3,4], [0,1,2,3,4], [0,1,2,3,4], [0,1,2,3,4], [0,1,2,3,4]] . تلخيص: الشيفرة تقوم بإنشاء مصفوفة ذات 6 صفوف و 5 أعمدة، حيث يتم ملء القيم في كل صف بالأرقام من 0 إلى 4.
-
ان شئت فصلهما فلك كامل الحرية، ولكن لما ذلك وأنت تستطيع دمجمها في تطبيق واحد وتوفر الكثير. اذ يمكنك عرض تطبيق رياكت ضمن تطبيق لارافيل بالفعل، ولا حاجة لإنشاء تطبيق منفصل. ستحتاج أولا إنشاء ملف عرض يقوم بتضمين المكون الجذر لتطبيق رياكت، وليكن spa.blade.php: <!DOCTYPE html> <html lang="{{ str_replace('_', '-', app()->getLocale()) }}"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Laravel</title> @vite('resources/sass/app.scss') </head> <body class="antialiased"> <div id="app">..</div> @vite('resources/js/main.js') </body> </html> انتبه الى تضمين ملف جافاسكربت وملف التنسيقات الأساسين للتطبيق. الأن سنحتاج توجيه كل الطلبيات التي تختلف عن مسارات الـ API إلى عرض هذا الملف، وذلك لأنه يقوم بتصيير تطبيق رياكت ويترك له عملية التوجيه Routing. ضف المسار التالي في ملف web.php: Route::get('{any}', function(){ return view('spa'); }) ->where('any' ,'^(?!api).*$'); قم بتضمين وبناء تطبيق رياكت لديك داخل تطبيق لارافيل، وعند الانتهاء قم بتشغيل npm run build لتحزيم ملفات التطبيق وتخريجها. وطبعا لا تنسى بناء تطبيق رياكت لديك في الملف الذي يتم تضمينه في صفحة spa: import React from 'react'; import ReactDOM from 'react-dom'; import App from './App'; import './index.css'; ReactDOM.render( <React.StrictMode> <App /> </React.StrictMode>, document.getElementById('root') ); سيتم تصيير تطبيق رياكت في المكون الجذر app بطبيعة الحال.
-
إليك خطوات عامة يمكنك اتخاذها: تعلم أساسيات البرمجة فهم الرياضيات لأنه أمر مهم في هذا المجال، خاصة في مجالات مثل الجبر الخطي والإحصاء. يساعد هذا في فهم النماذج والخوارزميات المستخدمة وإنشاءها. تأكد من أن لديك فهم جيد لأساسيات البرمجة باستخدام لغة تستخدم في الذكاء الصناعي مثل Python، حيث تستخدم العديد من المكتبات والأدوات في مجال الذكاء الاصطناعي مثل مكتبات TensorFlow و PyTorch وKeras وغيرها. تعلم الذكاء الصناعي وتعلم الآلة انخرط في المجتمعات البرمجية المرتبطة بالمجال وتفاعل معهم طور من معارفك وزد من تطبيقك العملي. يمكنك الإطلاع على تصنيف الذكاء الصناعي في دروس ومقالات الأكاديمية: https://academy.hsoub.com/programming/artificial-intelligence/
- 2 اجابة
-
- 1
-
-
حاليا، لا أظن ذلك. ولكن يمكنك التواصل مع مركز الدعم للاستفسار أكثر.
-
افتح console التطبيق على المتصفح وانظر ما المشكلة عند الضغط على زر الطباعة. أيضا، انتبه الى ان 10 هاهنا مثال لا أكثر، ضع مكانها معرف السطر الذي تستهدفه: <button class="btn btn-success " id="download" onclick="printPage(10)>
-
كفكرة، قم بإنشاء صفحة PHP جديدة بحيث تعرض هذا السطر بشكل HTML، وضف عليها التنسيقات اللازمة وفي الأخير قم بطباعتها بوساطة جافاسكربت. مثال: ننشئ صفحة PHP جديدة، نقوم فيها بالاستعلام عن البيانات المرادة، ونقوم بعرضها فيها منسقة: // print-page.php <?php // الاتصال بقاعدة البيانات $conn = new mysqli("localhost", "اسم المستخدم", "كلمة المرور", "اسم قاعدة البيانات"); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } // استعلام لاسترجاع البيانات $id = $_GET['id']; $sql = "SELECT * FROM اسم_الجدول WHERE id=".$id; $result = $conn->query($sql); // إضافة البيانات إلى التقرير $html = '<h1>عنوان التقرير</h1>'; $html .= '<table border="1" cellpadding="5">'; $html .= '<tr><th>عنوان العمود1</th><th>عنوان العمود2</th><th>عنوان العمود3</th></tr>'; while ($row = $result->fetch_assoc()) { $html .= '<tr>'; $html .= '<td>' . $row['اسم_العمود1'] . '</td>'; $html .= '<td>' . $row['اسم_العمود2'] . '</td>'; $html .= '<td>' . $row['اسم_العمود3'] . '</td>'; $html .= '</tr>'; } $html .= '</table>'; $html .= '<div style="text-align:center;">تاريخ الطباعة: ' . date('Y-m-d H:i:s') . '</div>'; الآن قم باضافة الزر الى الجدول الخاص بك: <button id="download" onclick="printPage(10)"> تحميل </button> وضف حدث الطباعة على النحو التالي: function printPage(id) { // استخدام XMLHttpRequest لجلب محتوى الصفحة الخارجية var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { // إنشاء نافذة جديدة تحتوي على محتوى الصفحة var printWindow = window.open('', '_blank'); printWindow.document.write(xhr.responseText); // انتظر حتى يتم تحميل الصفحة بشكل كامل ثم قم بطباعتها printWindow.onload = function() { printWindow.print(); }; } }; xhr.open('GET', '/print-page.php?id=' + id, true); xhr.send(); }
-
ان تطوير نظام كبير ومعقد باستخدام إطار عمل لارافيل أو نود يتطلب منك قدرا عاليا من التنظيم ومهارة وخبرة في الهندسة وتطوير النظم، والتي عادة ما تشمل النقاط التالية: تحديد الهدف والمتطلبات البحث والتخطيط التوثيق الجيد لحالات الاستخدام ومخططات الحالة بناء تصاميم أولية ونماذج استعمال ادوات ذات فعالية عالية لإدارة المشروع وتتبعه على مختلف مراحله مثل Trello وغيرها من Jira استخدام تقنيات الاختبار وبناء بيئة اختبارية بالاعتماد على اطر مثل PHPunit و Laravel Dusk وغيرهما التركيز في جودة الشيفرات والعمل على تحسينها تحسين استعلامات قواعد البيانات وتسريعها التركيز على استيفاء العمل لمؤشرات الجودة المختلفة مثل قابلية التوسع والصيانة وما الى ذلك تقسيم العمل لأهداف، والأهداف لمهام والمهام لمهام اصغر مراقبة الجودة واختبار سرعة التطبيق وقد لا يمكن ذلك من أول مرة إلا بعد الكثير من الجهد والوقت من قبل شخص واحد مهما بلغت خبرته، ولذلك ركز على ما هو أهم بداية: بناء نظام قابل للصيانة وسهل التوسع. وضف عليه كل مرة حتى يصل لمستوى استيعاب ملايين المستخدمين. الشركات الكبيرة تستخدم نظما ومناهج متقدمة لإدارة مشاريعها البرمجية وتطويرها، ومثلها منهج Agile واطار عمله الشهير Scrum والذي يهتم بتطوير النظم مع التركيز الكبير على قدرتها على التكيف مع التغير والتقاط التطورات. وأيضا على توزيع مختلف المهام على مختلف اعضاء الفريق وتوجيههم للانتاج بفعالية في فترات زمنية قصيرة. عادة ما يدير هاته المشاريع في هاته الشركات شخص يتم تعيينه من قبل مالك المشروع أو المدير التنفيذي للشركة يسمى الـ Scrum master أو مدير المنتج PM أو قائد الفريق Team Leader بحسب الاصطلاح او المسمى الوظيفي، والذي يحرص على التواصل الفعال مع صاحب المشروع من جهة ومع اعضاء فريقه من جهة وعلى تقييم عملهم وتوزيع المهام عليهم من جهة أخرى. وكل هذا يكون في فترات زمنية قصيرة تسمى Sprints تمتد من اسبوع حتى أربع. ويتم في آخر هاته الـ Sprints عمل تقييم لها وهكذا ..
- 1 جواب
-
- 1
-
-
يمكنك استخدام ادوات التحليل عبر الويب لاستخلاص التقنيات المعمول بها أي موقع أو منصة، مثل builtwith، بالنسبة لأكاديمية حسوب، فيرجح أنه تم استعمال اطار عمل Ruby on Rails المكتوب بلغة Ruby. أما بالنسبة لموقع مستقل وزيتون وخمسات وبعيد فهي على الأرجح مبنية بإطار عمل Laravel المكتوب بلغة PHP. ونفس الشيء بالنسبة لموقع بيكاليكا. أما عن الربط بين هاته المواقع، فهو بطبيعة الحال بوساطة الواجهات البرمجية API التي تسهل التخاطب بين التطبيق وبين أي طرف آخر، بما في ذلك تطبيقات أخرى. ولذلك نرى أن موقع حسابات حسوب يتركز عملية توثيق المستخدمين ومصادقتهم في كامل منتجات حسوب.
- 4 اجابة
-
- 1
-
-
تأكد أولا من تثبيت بوتستراب في مشروعك: npm install bootstrap ثم قم بتضمين مختلف الملفات المصدرية في ملفي app.js و app.scss أو app.css ان كنت تريد استخدام css: import * as bootstrap from 'bootstrap'; و: @import "node_modules/bootstrap/scss/bootstrap"; أو: @import "node_modules/bootstrap/dist/css/bootstrap.min.css";
-
بشكل افتراضي لن يتم ذلك على مستوى قاعدة البيانات، ولكن يمكنك تجاوز التابع delete الخاص بـ post أو video فتقوم بحذف جميع التعليقات الفرعية قبل حذف المنشور أو الفيديو. public function delete() { if(parent::delete())){ $this->comments()->delete(); } }
- 4 اجابة
-
- 1
-
-
علاقة One Two Many Polymorphic تقتضي أن يكون العمود الممثل للمفتاح الاجنبي حاملا لقيمته لا أكثر، ولا يتطلبك تصريحه كمفتاح أجنبي يشير الى مفتاح اولي في جدول آخر. بمعنى أنه سيكون مجرد Ineteger لا أكثر ولا يفترض أن يحمل أن علاقة تعبر عنه كونه مفتاحا أجنبيا، بل سيتم الاستعلام عنه لاحقا باعتبار هاته القيمة وفقط. هيكلة الجداول لديك يجب أن تبدوا على النحو التالي: Schema::create('comments', function (Blueprint $table) { $table->id(); $table->text("comments"); $table->integer('commentable_id'); $table->string("commentable_type"); $table->timestamps(); }); ولا تنسى بطبيعة الحال تصريح التوابع اللازمة في ملفات النماذج المعنية Comment و Video و Post وسيتم الأمر بشكل تلقائي.
- 4 اجابة
-
- 1
-
-
تحتاج ترتيب الأمور قليلا، PHPMyAdmin هو نظام تحكم مكتوب بلغة PHP لإدارة قواعد البيانات MySQL في واجهة تفاعلية، وهي واحدة من أكثر النظم الإدارية شيوعا في MySQL. الآن، إدارة موقع وربطه لا تكون من على PHPMyAdmin. بل هي آداة تعنى بإدارة قواعد البيانات التي سوف يبنى عليها هذا الموقع، وذلك من حذف وتعديل وقراءة وتنفيذ استعلامات والقيام بعمليات على قواعد البيانات وما الى ذلك. سبب الارتباط بلغة PHP هو بسبب أن النظام يستخدم حصرا لإدارة قواعد MySQL والتي شائع استخدامها في PHP. هذا بجانب أن النظام أساسا مكتوب على لغة PHP. وكما أنه قد تم تسويق هذا النظام ضمن تجميعات مثل XAMPP و LAMPP و WAMPP الشائع استخدامها في تطويرر تطبيقات الويب باستخدام PHP.
-
بالطبع توجد، يمكنك التوصل الى الكثير من المسارات التي تشرح تطوير الويب من جانب الخادم فقط والتي لا تتعرض لتطبيق العميل نهائيا. أولا، سوف تحتاج الإطلاع على مبادئ الويب وكيفية عمله ومختلف البروتوكولات وما الى ذلك. ثانيا، سوف تحتاج الاختيار من بين اللغات الناشطة في مجال الواجهة الخلفية، ثم قم بأخذ دروس فيها. لاحقا، سوف تحتاج المزيد من الدروس التطبيقية أو الاطلاع على توثيقات اللغات واطر العمل التي تعمل بها لاستيفاء هذا الغرض. بالنسبة لمصادر الفيديو على YouTube، يمكنك البحث عن دورات أو قنوات تقدم محتوى عالي الجودة حول تطوير الواجهة الخلفية باستخدام اللغة التي اخترتها، نذكر مثلا Traversy Media, The Net Ninja, Academind وغيرها الكثير. أيضا، يمكنك الاستفادة من المحتوى المكتوب المنشور على أكاديمية حسوب في قسم دروس ومقالات البرمجة.
-
يعتمد هذا على متطلبات الموقع الذي تريد بناءه. فهل سيكون المحتوى الذي فيه ثابتا أو ديناميكيا؟ هل تعمد الى توظيف أي تكنولوجيات أو تقنيات معينة؟ هل سيكون موقعا ذي واجهتين -أمامية وخلفية-؟ هل ستعمد الى استعمال أي أدوات متقدمة؟ ولذلك، فإنك ستحتاج كأقل متطلبات كلا من: HTML CSS JAVASCRIPT بناء واجهة موقع، أو موقع الكتروني ذي محتوى ثابت. وللقيام بذلك بشكل أعلى احترافية، سوف تحتاج أيضا: محزم ويب مثل webpack sass pug إطار عمل او مكتبة على جافاسكربت مثل VueJS أو رياكت وغيرها .. أما ان كنت تنوي بناء موقع ويب شامل بواجهتيه الخلفية والأمامية، فستحتاج بجانب السابق: لغة للواجهة الخلفية مثل PHP أو Python غالبا ما تحتاج أيضا اطار عمل مثل Laravel أو Django التعامل مع قواعد البيانات بلغة SQL ونظم ادارتها مثل MySql
-
بحسب الموقع الرسمي للمكتبة، فإنه يتطلب: اصدار 3.1 حتى 3.8 من بايثون مثبتا توزيعة 16.04 من اوبنتو فأكثر في حالة ما كنت تستخدمه اصدار 10 من ماك OS في حال كنت تستخدمه اصدار 7 من ويندوز فأكثر في حال كنت تستخدمه - مع موزعات Microsoft Visual C++ أما بالنسبة للعتاد، فستكون ذاكرة تخزينة عشوائية اضافية مطلوبة في حال ما كانت النماذج التي تعمل عليها كبيرة، نفس الشيء بالنسبة لمساحة التخزين - عدا ذلك ستكفيك متطلبات محدودة في حال ما كانت النماذج التي ستعمل عليها محدودة أو للتعلم والتدريب فقط.
- 5 اجابة
-
- 1
-