فهرست:
در فریمورک های MVC
، حرف “V” مخفف Views
است و در واقع Views
منطق برنامه و منطق ارائه را از هم جدا می کند. Views
در دایرکتوری resources/views
ذخیره می شوند. به طور کلی، Views
حاوی محتوا HTML هستند. برای درک بیشتر Views مثال زیر را مشاهده کنید، کد زیر را در فایل resources/views/test.php
بارگذاری نمایید.
[pastacode lang=”markup” manual=”%3Chtml%3E%0A%20%20%20%3Cbody%3E%0A%20%20%20%20%20%20%3Ch1%3EHello%2C%20World%3C%2Fh1%3E%0A%20%20%20%3C%2Fbody%3E%0A%3C%2Fhtml%3E” message=”resources/views/test.php” highlight=”” provider=”manual”/]
فایل app/Http/routes.php
بصورت زیر تغییر دهید.
[pastacode lang=”php” manual=”Route%3A%3Aget(‘%2Ftest’%2C%20function()%20%7B%0A%20%20%20return%20view(‘test’)%3B%0A%7D)%3B” message=”app/Http/routes.php” highlight=”” provider=”manual”/]
حال به آدرس زیر مراجعه کنید.
[pastacode lang=”markup” manual=”http%3A%2F%2Flocalhost%3A8000%2Ftest” message=”” highlight=”” provider=”manual”/]
خروجی مرورگر شما باید مطابق زیر باشد.
[pastacode lang=”markup” manual=”Hello%2C%20World” message=”” highlight=”” provider=”manual”/]
انتقال داده به Views
در حین ایجاد برنامه، ممکن است لازم باشد داده ها به View
منتقل شوند. برای این منظور می توانیم مجموعه ای از داده ها را تحت عنوان یک آرایه به بخش Views
ارسال نمایید و با استفاده از کلید آن ارایه مقدار آن را در فایل HTML
مشاهده نماییم. برای درک بهتر توضیحات بالا مثال زیر را مشاهده کنید، کد زیر را در فایل resources/views/test.php
بارگذاری نمایید.
[pastacode lang=”php” manual=”%3Chtml%3E%0A%20%20%20%3Cbody%3E%0A%20%20%20%20%20%20%3Ch1%3E%3C%3Fphp%20echo%20%24name%3B%20%3F%3E%3C%2Fh1%3E%0A%20%20%20%3C%2Fbody%3E%0A%3C%2Fhtml%3E” message=”resources/views/test.php” highlight=”” provider=”manual”/]
فایل app/Http/routes.php
بصورت زیر تغییر دهید.
[pastacode lang=”php” manual=”Route%3A%3Aget(‘%2Ftest’%2C%20function()%20%7B%0A%20%20%20return%20view(‘test’%2C%5B’name’%3D%3E’uclass’%5D)%3B%0A%7D)%3B” message=”app/Http/routes.php” highlight=”” provider=”manual”/]
حال به آدرس زیر مراجعه کنید.
[pastacode lang=”markup” manual=”http%3A%2F%2Flocalhost%3A8000%2Ftest%0A” message=”” highlight=”” provider=”manual”/]
خروجی مرورگر شما باید مطابق زیر باشد.
[pastacode lang=”markup” manual=”uclass” message=”” highlight=”” provider=”manual”/]
اشتراک گذاری داده ها با همه Views
تا به اینجا ما یادگرفتیم که چگونه می توانیم داده ها را به Views
منتقل کنیم، اما در بعضی مواقع ما نیاز به انتقال داده ها به همه View ها داریم، لاراول برای این مورد کار را ساده کرده است، برای این منظور متدی به نام share
وجود دارد که دو آرگومان کلید و مقدار را دریافت خواهد کرد. معمولا متد share
را می توان از طریق متد boot
در service provider
فراخوانی کرد با این حال ما می توانیم از AppServiceProvider
یا service provider
خودمان نیز استفاده کنیم. حال بیاید توضیحات بالا را در قالب یک مثال کاربردی بررسی نماییم. فایل app/Http/routes.php
بصورت زیر ویرایش فرمایید.
[pastacode lang=”php” manual=”Route%3A%3Aget(‘%2Ftest’%2C%20function()%20%7B%0A%20%20%20return%20view(‘test’)%3B%0A%7D)%3B%0A%0ARoute%3A%3Aget(‘%2Ftest2’%2C%20function()%20%7B%0A%20%20%20return%20view(‘test2’)%3B%0A%7D)%3B” message=”app/Http/routes.php” highlight=”” provider=”manual”/]
برای انتقال داده بین View ها دو فایل test.php
وtest2.php
بصورت زیر در دایرکتوری resources/views
ایجاد نمایید.
[pastacode lang=”markup” manual=”%3Chtml%3E%0A%20%20%20%3Cbody%3E%0A%20%20%20%20%20%20%3Ch1%3E%3C%3Fphp%20echo%20%24name%3B%20%3F%3E%3C%2Fh1%3E%0A%20%20%20%3C%2Fbody%3E%0A%3C%2Fhtml%3E” message=”resources/views/test.php & resources/views/test2.php” highlight=”” provider=”manual”/]
همانطور که در زیر نشان داده شده است، متد boot
را در فایل app/Providers/AppServiceProvider.php
تغییر دهید. (در اینجا ، ما از روش اشتراک استفاده کرده ایم و داده ها را با همه Views
به اشتراک گذاشتیم.)
[pastacode lang=”php” manual=”%3C%3Fphp%0A%0Anamespace%20App%5CProviders%3B%0Ause%20Illuminate%5CSupport%5CServiceProvider%3B%0A%0Aclass%20AppServiceProvider%20extends%20ServiceProvider%20%7B%0A%20%20%20%0A%20%20%20%2F**%0A%20%20%20%20%20%20*%20Bootstrap%20any%20application%20services.%0A%20%20%20%20%20%20*%0A%20%20%20%20%20%20*%20%40return%20void%0A%20%20%20*%2F%0A%0A%20%20%20public%20function%20boot()%20%7B%0A%20%20%20%20%20%20view()-%3Eshare(‘name’%2C%20’Uclass’)%3B%0A%20%20%20%7D%0A%0A%20%20%20%2F**%0A%20%20%20%20%20%20*%20Register%20any%20application%20services.%0A%20%20%20%20%20%20*%0A%20%20%20%20%20%20*%20%40return%20void%0A%20%20%20*%2F%0A%0A%20%20%20public%20function%20register()%20%7B%0A%20%20%20%20%20%20%2F%2F%0A%20%20%20%7D%0A%7D” message=”app/Providers/AppServiceProvider.php” highlight=”” provider=”manual”/]
حال دو آدرس زیر را در دو تب جداگانه در مرورگر خود بازکنید، خواهید دید که داده شما به درستی بین Views
ها پاس داده شده است.
[pastacode lang=”markup” manual=”http%3A%2F%2Flocalhost%3A8000%2Ftest%0Ahttp%3A%2F%2Flocalhost%3A8000%2Ftest2″ message=”” highlight=”” provider=”manual”/]
خروجی مرورگر شما در هر دو تب باید بصورت زیر باشد.
[pastacode lang=”markup” manual=”Uclass” message=”” highlight=”” provider=”manual”/]