فهرست:

در فریمورک های MVC ، حرف “V” مخفف Views است و در واقع Views منطق برنامه و منطق ارائه را از هم جدا می کند. Views در دایرکتوری resources/views ذخیره می شوند. به طور کلی، Views حاوی محتوا HTML هستند. برای درک بیشتر Views مثال زیر را مشاهده کنید، کد زیر را در فایل resources/views/test.php بارگذاری نمایید.

resources/views/test.php
<html>
   <body>
      <h1>Hello, World</h1>
   </body>
</html>

فایل app/Http/routes.php بصورت زیر تغییر دهید.

app/Http/routes.php
Route::get('/test', function() {
   return view('test');
});

حال به آدرس زیر مراجعه کنید.

http://localhost:8000/test

خروجی مرورگر شما باید مطابق زیر باشد.

Hello, World

انتقال داده به Views

در حین ایجاد برنامه، ممکن است لازم باشد داده ها به View منتقل شوند. برای این منظور می توانیم مجموعه ای از داده ها را تحت عنوان یک آرایه به بخش Views ارسال نمایید و با استفاده از کلید آن ارایه مقدار آن را در فایل HTML مشاهده نماییم. برای درک بهتر توضیحات بالا مثال زیر را مشاهده کنید، کد زیر را در فایل resources/views/test.php بارگذاری نمایید.

resources/views/test.php
<html>
   <body>
      <h1><?php echo $name; ?></h1>
   </body>
</html>

فایل app/Http/routes.php بصورت زیر تغییر دهید.

app/Http/routes.php
Route::get('/test', function() {
   return view('test',['name'=>'uclass']);
});

حال به آدرس زیر مراجعه کنید.

http://localhost:8000/test

خروجی مرورگر شما باید مطابق زیر باشد.

uclass

اشتراک گذاری داده ها با همه Views

تا به اینجا ما یادگرفتیم که چگونه می توانیم داده ها را به Views منتقل کنیم، اما در بعضی مواقع ما نیاز به انتقال داده ها به همه View ها داریم، لاراول برای این مورد کار را ساده کرده است، برای این منظور متدی به نام share وجود دارد که دو آرگومان کلید و مقدار را دریافت خواهد کرد. معمولا متد share را می توان از طریق متد boot در service provider فراخوانی کرد با این حال ما می توانیم از AppServiceProvider یا service provider خودمان نیز استفاده کنیم. حال بیاید توضیحات بالا را در قالب یک مثال کاربردی بررسی نماییم. فایل app/Http/routes.php بصورت زیر ویرایش فرمایید.

app/Http/routes.php
Route::get('/test', function() {
   return view('test');
});

Route::get('/test2', function() {
   return view('test2');
});

برای انتقال داده بین View ها دو فایل test.php وtest2.php بصورت زیر در دایرکتوری resources/views ایجاد نمایید.

resources/views/test.php & resources/views/test2.php
<html>
   <body>
      <h1><?php echo $name; ?></h1>
   </body>
</html>

همانطور که در زیر نشان داده شده است، متد boot را در فایل app/Providers/AppServiceProvider.php تغییر دهید. (در اینجا ، ما از روش اشتراک استفاده کرده ایم و داده ها را با همه Views به اشتراک گذاشتیم.)

app/Providers/AppServiceProvider.php
<?php

namespace App\Providers;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider {
   
   /**
      * Bootstrap any application services.
      *
      * @return void
   */

   public function boot() {
      view()->share('name', 'Uclass');
   }

   /**
      * Register any application services.
      *
      * @return void
   */

   public function register() {
      //
   }
}

حال دو آدرس زیر را در دو تب جداگانه در مرورگر خود بازکنید، خواهید دید که داده شما به درستی بین Views ها پاس داده شده است.

http://localhost:8000/test
http://localhost:8000/test2

خروجی مرورگر شما در هر دو تب باید بصورت زیر باشد.

Uclass