فهرست:

در فریمورک های 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”/]