Skip to main content

الدرس الخامس: أنشاء صفحة عامة للأخبار في الLaravel


الجزء ال5: أنشاء موقع للأخبار بأستخدام Laravel

من بداية الجزء الأول الى الرابع كانت أجزاء تمهيدية لتعلم Laravel, في هذا الجزء سنتعلم أشياء أضافية للأجزاء السابقة وسنطبق ذلك من خلال انشاء موقع للأخبار, معلومات الأخبار سندرجها بطريقة مباشرة بدون استخدام قواعد البيانات في هذا الجزء, اي لن نستخدم جزء الModel فقط الController وال View والroutes
كما تعلمنا لكل جزء له وظيفته الخاصة,

لأنشاء الController الخاص بالأخبار عن طريق الأمر التالي:
C:\Users\Administrator\Desktop\laravel_apps\first_app>php artisan make:controller NewsController --plain

نقوم بتشغيل الartisan عن طريق الأمر التالي:

C:\Users\Administrator\Desktop\laravel_apps\first_app>php artisan serve
Laravel development server started on http://localhost:8000/



داخل ملف الNewsController قمتٌ بأنشاء دالتين, دالة لأستدعاء كافة الأخبار وسميتُ تلك الدالة بgetNews(), ودالة اخرى الرئيسية لهذا الملف وهي الindex() حيث تعمل على استرجاع جميع الأخبار من دالة الgetNews() , وتمرير تلك القيم للview التي تسمى index في مجلد اسمه news , والكود لكلا الدالتين كالأتي:
public function index()
     {
          $news=$this->getNews();
           return view('news.index',compact('news'));
     }
    
     public function getNews()
     {
           $news = ['Free Session for Learning Laravel 5','Free Session for Learning SQLServer 2012','Learning Joomla!','Learning Blogger'];
           return $news;
     }



وبعدها سأنشئ دالة لأظهار خبر معين وسأقوم بتسميتها بshow() , طبعاً هذا الدالة ستظهر الخبر حسب الرقم التعريفي للخبر اي يجب تزويد قيمة المعرف لذلك الخبر لهذه الدالة لتصبح هكذا show($id), وبعدها ستستدعي دالة getNews() مصفوفة الأخبار ستسترجع وسنختار خبر معين عن طريق معرفهِ, بعد استرجاع قيمة الخبر حسب معرفهِ سنمرر الخبر للView الخاصة بعرض خبر معين, وسننشئ view ونسميه show في مجلد ال,news كود الدالة كالأتي:
public function show($id)
     {
           $news = $this->getNews()[$id];
           return views('news.show',compact('news'));
     }

انتهى عملنا مع الNewsController J

بقي لنا جزئين جزء الviews  والأخر الroutes!!

في ملف الroutes.php:
عندما يكتب المستخدم /news في المتصفح فأن ذلك يعني وجهني الى جميع الأخبار اي الى NewsController@index ومن هنالك ستسترجع الواجهة view الخاصة بعرض جميع الأخبار news.index:
لكتابة التوجيه يوجد ثلاث طرق:
Routes::get();
$router->get();
get();
لايوجد خطأ بأستخدام اي من الثلاث لكن في هذا الجزء للسهولة سأستخدم دالة الget():
get('news','NewsController@index');

ملاحظة الأخبار التي ستسترجع ستوضع داخل الAnchor tag, وتظهر فقط عنوان الخبر , عند الضغط على الخبر سنتوجه للخبر نفسه طبعاً لكل خبر له معرفهُ الخاص اي التوجيه يكون بالشكل التالي: /news/{id}
get('news/{id}','NewsController@show');

انتهى عملنا مع الroutes.php J


الجزء الأخير عرض البيانات للمستخدم عن طريق الviews:
اول واجهة ستكون لعرض كافة الأخبار واتفقنا على تسميتها بindex , وسوف تكون جميع الواجهات الأخبار موضوعة في مجلد اسمه news لغرض الترتيب!
ملاحظة: عند انشاء view لا تنسى ان تكتب .blade.php , فعند انشاء الindex view ستكون بهذا الشكل :
news/index.blade.php
في هذا الview , ستمرر له كافة الأخبار من الNewsController عن طريق دالة الindex بمصفوفة اسمها $news
اي اننا سنحتاج الى عمل حلقة تكرار لعرض تلك الأخبار, كود الindex view سيكون بالشكل التالي:
@extends('layout')
@section('content')
<h1>News</h1>
<ul>
@foreach($news as $k=>$v)
<li><a href="/news/{{ $k }}">{{ $v }}</a></li>
@endforeach
</ul>
@stop

ملاحظة: قمت بأستخدام    Layout view template وبعدها ادرجتُ الأخبار ضمن قاطع في الLayout في حلقة تكرار, وايضاً لكل خبر له رابط مع رقمهُ التعريفي عن طريق $key=>$value حيث ان ال$k تعني الرقم التعريفي للقيمة و ال$v  تعني القيمة نفسها للخبر.


والview  الثانية ستكون عن أظهار خبر معين مع محتواه, وتسمية تلك الواجهة ستكون: show.blade.php  وستوضع ضمن مجلد الnews:
news/show.blade.php
محتوى هذا الview بسيط جداً لهذا الجزء فقط سأظهر عنوان الخبر:
@extends('layout')
@section('content')
<h1>{{ $news }}</h1>
<p>Content of the news, I'll add later on......</p>
@stop

درس اليوم انتهى J

الناتج لدرس هذا اليوم عند زيارة الموقع وكتابة /news في المتصفح ستظهر لنا هذه الصفحة:


وعند الضغط على احد العنوان ستظهر لنا هذه الصفحة:

Comments

Popular posts from this blog

PART #2: Registration and Login System Tutorial Using PHP and MYSQL

PART #2: Registration and Login System Tutorial Using PHP and MYSQL Registration and login system using PHP and MySQL database, in this part you will do the following: 1- Creating the registration page. 2- Validating the registration form. 3- Sending the activation link on successful registration. note: you can find the mailserver tool here: [MailServerTool] Good luck. PHP,Mysql,Programming,web development,How to,Technology,web programming,web project ideas,safaa al-hayali,saf3al2a,Registration and login,Registration and login in php,php and mysql login system,registration system using php and mysql,login and register php,login and register php with database,database,php tutorial,learn php,tutorial

How To Play .srt Subtitles File in Windows Media Player

How To Play .srt Subtitles File in Windows Media Player links: https://sourceforge.net/projects/wmpsub/ wmp,.srt Subtitles File in Windows Media Player,How To Play .srt Subtitles File in Windows Media Player,How To,Safaa Al-Hayali,saf3al2a,srt subtitle in WMP,Windows,Windows Media Player,media,.ass,local subtitles

Virtual Box : How to Increase Disk Size - Windows

How to increase disk size or disk storage in oracle virtual box the command you have to use: vboxmanage.exe modifymedium "[YourPathToVdiFileOfYourVirtualMachine]" --resize [NUMBER] virtual,box,vbox,oracle,partition,size,disk,increase,resize,windows,10,microsoft,vdi,vboxmanage,configuration,Safaa AL-Hayali,saf3al2a,Oracle,VirtualBox,How to,windows 10