اكتشف إطار PHP Laravel


الدرس: بناء موقع استبيان مع قاعدة بيانات


الصفحة السابقة
الهدف من هذا التمرين هو إكمال موقع استبيان أكثر تطوراً من موقع الجزء الأول ، وهذه المرة باستخدام قاعدة بيانات.
يمكن العثور على جميع المعلومات اللازمة في الجزء الثاني من الدورة.

مهمتك


ما زلنا نطلب من ليو بناء موقع استبيان لكن لا يزال يتعين عليه المغادرة قبل الانتهاء. مهمتك هي الانتهاء من وظيفته. لقد أنهى الموقع تقريبًا لكنه ترك الفصل  PollRepository قيد الإنشاء ، وسيتعين عليك إكماله حتى يعمل الموقع. نظرًا لأن ليو يقوم بعمله باتقان ، فقد قام بالفعل بإعداد الأساليب الخاصة بهذه الفئة وقام بإضافة تعليقات توضيحية كوسيلة مساعدة في الذاكرة.
ملاحظة  : لا يغطي التمرين سوى جزءًا صغيرًا من التحسينات بحيث يظل في إطار النشاط ، ولكنه مدمج في تطبيق كامل لإعطائك مثالاً عن موقع وظيفي. على وجه الخصوص ، تم تكييف المصادقة للتكامل مع الموقع.

ميزات الموقع


يقدم الموقع استطلاعات للزوار ، يمكنهم التسجيل على الموقع وإدارة حساباتهم ، ويمكنهم التصويت إذا كانوا متصلين. يمكن للمسؤولين فقط إدارة الاستطلاعات. لكل استطلاع ، يمكن للمستخدم التصويت مرة واحدة فقط.

زائر واحد


الزائر لديه قائمة من الاستطلاعات المتاحة مع ترقيم الصفحات:
framework Laravel MVC
النقر على زر يؤدي إلى نتائج الاستبيان المختار:
framework Laravel MVC
تبلغ الرسالة الزائر بأنه يجب تسجيل الدخول للمشاركة في الاستطلاع.
زر يسمح له بالعودة إلى الصفحة الرئيسية.

المصادقة


إذا نقرنا على زر " Se connecter " ، فنحن نصل إلى نموذج الاتصال:
framework Laravel MVC
يكرر هذا النموذج كل ما رأيناه في الفصل 2.4 حول المصادقة ، ولكن بدلاً من استخدام طرق عرض Laravel الافتراضية ، أنشأ ليو صفحات عرض الخاصة.
يتم إدارة نسيان كلمة المرور باستخدام هذا النموذج:
framework Laravel MVC
ويعمل حتى يتم إدخال كلمة المرور الجديدة.
يظهر نموذج التسجيل مع زر " Je m’inscris " :
framework Laravel MVC
من الواضح أن كل عمليات التحقق من الصحة:
framework Laravel MVC
مستخدم معتمد
عندما يتشاور مستخدم مصادق نتيجة الاستطلاع ، يكون لديه رسالة إذا كان قد شارك بالفعل:
framework Laravel MVC
إذا لم يصوّت بعد ، يُطلب منه ذلك باستخدام زر التصويت:
framework Laravel MVC
ثم يصل إلى نموذج التصويت لهذا الاستطلاع:
framework Laravel MVC
وعندما يصوت ، نعيده إلى النتائج المحدثة مع رسالة:
framework Laravel MVC

الادارة


اكتمال استقبال المسؤول:
framework Laravel MVC
لكل استطلاع ، يحتوي على زر تعديل يتم تعطيله في حالة إجراء تصويت بالفعل (في الواقع ، لن يكون من الحكمة تعديل الاستطلاع إذا كان الأشخاص قد صوتوا بالفعل).
يستخدم زر آخر لحذف الاستطلاع.
يسمح لك الزر الأخير بإنشاء استطلاع جديد.
للحذف ، يتم توفير تأكيد صغير في JavaScript :
framework Laravel MVC
للإنشاء ، نحن نقدم نموذجًا:
framework Laravel MVC
نظرًا لأن عدد الاستجابات متغير ، فقد تم توفير مخصص للإنشاء والحذف الديناميكي على جانب العميل مع JQuery .
يحظر الحصول على أقل من 3 إجابات.
تتم معالجة التحقق من الصحة تمامًا في Ajax (من المستحيل فعل ذلك بطريقة أخرى باستخدام هذا النموذج الديناميكي) :
framework Laravel MVC
أعطيتك الكود لأننا سنرى كيف نستخدم Ajax مع Laravel في الجزء الثالث من الدورة. يمكنك بعد ذلك العودة إلى هذا المثال الملموس لترى كيف تم ذلك.

قاعدة البيانات والترحيلات


تحتوي قاعدة البيانات على هذا الهيكل:
framework Laravel MVC
لدينا علاقة نوع  1: n  بين استطلاعات الرأي وجداول الإجابات.
لدينا علاقة كتابة  n: n  بين المستخدمين وجداول الاستطلاعات.
لا تعديل أو حذف في تتالي ، كود يدير كل شيء.
لاختبار أداء الموقع ، أنشأ ليو سجلات.
لقد خطط لخمسة احتمالات:
framework Laravel MVC
مع هذه الإجابات:
framework Laravel MVC
كما خطط لبعض المستخدمين والأصوات.

تنظيم الكود


لا يزال ليو يعمل بشكل جيد ونظم ملفاته بشكل جيد.
وحدات التحكم
هناك العديد من وحدات التحكم:
framework Laravel MVC
دعونا نرى ذلك بالتفصيل:
  • AuthController   : هو وحدة تحكم التثبيت الأساسي Laravel تعديل طفيف ،
  • PasswordController   : هذا هو وحدة تحكم التثبيت الأساسية Laravel تعديل طفيف ،
  • PollController   : وحدة تحكم في الموارد تدير الاستطلاعات باستخدام هذا المسار:
    
    Route::resource('poll', 'PollController');
  • VoteController   : وحدة تحكم تدير الأصوات بهذه الطرق:
    	
    Route :: get ('تصويت / {id}' ، 'VoteController @ create') ؛ 
    Route :: post ('تصويت / {id}' ، 'VoteController @ store') ؛
    
التحقق من صحة
لدينا هذا 
framework Laravel MVC
  • PollCreateRequest   : طلب نموذج للتحقق من صحة إنشاء استطلاع ،
  • PollUpdateteRequest   : طلب نموذج للتحقق من صحة تعديل الاستطلاع.
كتب ليو كل الكود المقابل
مستودع
framework Laravel MVC
هذا المستودع مسؤول عن تنفيذ جميع الاستعلامات في قاعدة البيانات. هذا هو المكان الذي ستتدخل فيه من خلال استكمال الوظائف التي لم يكملها ليو.
العرض

هناك العديد من صفحات العرض منظمة ومُسماة:
framework Laravel MVC
  • auth.login   : لتسجيل الدخول ،
  • auth.password   : بالنسبة لنموذج إعادة تعيين كلمة المرور ،
  • auth.register   : لتسجيل مستخدم جديد ،
  • auth.reset   : لإدخال كلمة المرور الجديدة ،
  • email.password   : لتغيير كلمة المرور ،
  • polls.create   : لإنشاء استطلاع ،
  • polls.edit   : لتعديل الاستطلاع ،
  • polls.resultats   : لنتائج المسح ،
  • polls.sondage : للتصويت ،
  • polls.template_form   : نموذج للنماذج ،
  • الفهرس  : الصفحة الرئيسية ،
  • القالب  : قالب الموقع.
كتب ليو أيضًا كل الكود المقابل.