Skip to main content

الدرس الرابع: تمرير البيانات الى الواجهات Passing Data to the View

الجزء ال4: تمرير البيانات من الController الى الView

في الحلقة الثالثة من دورة Laravel 5 تعلمنا كيفية انشاء ملف يكون هو القالب لكل الملفات الأخرى, في هذا الدرس سنتعلم كيف نمرر بيانات من الController الى الViews:
مافائدة هذا الدرس؟ اي لماذا نحتاج الى تمرير البيانات من الController الى الView؟
الجواب: الController  يمثل الجزء الرئيسي لتبادل العمليات مابين ال Model والViews, في هذا الدرس سنتعلم كيف نمرر المعلومات بصورة مباشرة اي بدون استخدام قواعد البيانات فقط انشاء متغيرات وتمريرها من الController الى الView باستخدام احد الطرق التالية:

·       اما بتمرير المتغيرات في مصفوفة بصيغة Key=>value, كالأتي:

اول شيء نقوم بأنشاء view ونسميها home.blade.php وداخل هذا الملف سنستدعى القالب الذي انشأناه في الدرس الماضي كالأتي:


في ملف الController الخاص بعملياتنا نقوم بأستدعاء الView التي انشأناها اعلاه في دالة نسميها home():


انشاء التوجيه لهذه الView في ملف الroutes كالأتي:


الناتج كالأتي:



كل الخطوات اعلاه فقط لأعداد الدرس لهذا اليوم J والأن لنبدأ بمعرفة من اين وكيف نمرر البيانات للhome view:
أذهب الى ملف الController الذي سيستدعي هذا الView:
وحسب الطريقة الأولى: سنمرر البيانات عن طريق مصفوفة بها سيكون كل المتغيرات المراد تمريرها الى الView  بشكل الKey=>Value :
public function home(){
          $first_var = ['Part #1','Part #2','Part #3','Part #4'];
          $second_var = 'My Birthday on : 1991 / 7 / 7';
          return view('pages.home',['first_var'=>$first_var, 'second_var'=>$second_var]);  
   }



تم تمرير البيانات كما في الصورة اعلاه من الController  الى الView , والأن لأظهار تلك القيم الممررة في الhome view طبعاً اذا كان المتغير عبارة عن قيمة واحدة سنقوم بطبعة مباشرةً اما اذا كان مصفوفة في هذه الحالة سنحتاج الى انشاء حلقة تكرار لطبع كل القيم من المصفوفة:


ملاحظة: عن طبع القيم بأستخدام {{ $variable_name }} فأن القيمة في داخل هذا المتغير اذا كانت تحتوي على html tags سيتم تجاهلها وطباعتها كجملة اي Escape:
مثال: اذا كان المتغير المرر من الController
$name = ‘<h1>Safaa</h1>’;
عند طباعته في الhome view:
{{ $name }}
سيكون الناتج:
<h1>Safaa</h1>
ولا يتم تطبيق الHTML Tags , ولكن يوجد حالات نحتاج الى عدم عمل Escape للhtml tags يمكن ذلك بأستخدام :
{!! $name !!}

طبعاً اذا كانت القيمة المررة من نوع مصفوفة فيجب عمل حلقة تكرار اما بأستخدام الكود الخاص بالphp كما هو في الصورة اعلاه او بأستخدام الكود الخاص بالBlade view  كالأتي:
@foreach($first_var as $var):
<h2>{{ $var }}</h2>
@endforeach


·       أستخدام دالة تسمى compact(), التي تعمل على انشاء مصفوفة بشكل الKey=>value  , وحسب المتغيرات المزودة لها:
سأستخدم نفس الملفات فقط سأغير بطريقة تمرير البيانات في الController بأستخدام الcompact() :
كما ترى في الصورة اعلاه عند استخدام دالة الcompact() قمتٌ بتمرير اسم المتغيرات, والدالة بدورها ستنشأ مصفوفة ستحتوي تلك القيم داخلها.


·       استخدام دالة with() مع تزويدها بالقيم بشكل الKey=>value:

ملاحظة: مع دالة الwith() يمكن تسميتها بأسم المتغير مثلاً عند تمرير القيمة $first_var ليس بالضرورة تمرير اسم المتغير مع قيمة المتغير Key=>Value, يوجد طريقة اسهل وهي بعد كلمة with قم بتحديد اسم المتغير وفي داخل القوس حدد قيمة المتغير مباشرةً كالأتي: withFirst_var($first_var)
حيث ان الLaravel عندما تقوم بعملية parse ستعرف بأن بعد كلمة with هو اسم المتغير.



لا يوجد خيار خاطئ بتمرير البيانات من الcontroller الى view بأحدى الطرق الثلاث المذكورة اعلاه, ولكن لكود اقل وابسط سأستخدم الدالة compact()

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