লারাভেল – ভিউতে ডেটা পাস করা

এর আগে আমরা ভিউ এবং রুটস সম্পর্কে জেনেছি। এবার আমরা জানব কিভাবে ভিউতে ডেটা পাস করা যায়। এ জন্য আমরা রাউটস থেকে ভিউতে ডেটা পাস করব এবং ভিউতে ঐ ডেটা দেখাবো। web.php রুট ফাইলে আমরা বলে দিয়েছি welcome ভিউ দেখাতেঃ

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

আমরা কোন ডেটা দেই নি। আমরা একটা ভ্যারিয়েবলের মাধ্যমে ডেটা পাস করতে পারি এভাবেঃ

Route::get('/', function () {
    return view('welcome', [
        'name'=> 'Jack!' // assign to $name vairable
        ]);
});

ডেটা ভিউতে পাস করা হয়েছে। আমরা যদি ডেটা দেখাতে চাই, তাহলে name নামে ভ্যারিয়েবলটাকে কল করলেই হবে। welcome.blade.php এর সব কিছু মুছে নিচের কোড যুক্ত করে এরপর প্রজেক্টি ব্রাউজারে দেখুনঃ

<h1>Hello <?php echo $name; ?></h1>

উপরে আমরা পিএইচপি ট্যাগের ভেতর ভ্যারিয়েবলটা লিখেছি। আমরা চাইলে ব্লেড ডিরেক্টিভ ব্যবহার করে লিখতে পারি, যা মূলত উপরের প্লেইন পিএইচপি কোডে কনভার্ট করবেঃ

<h1>Hello {{ $name }}</h1>

এখন আপনি name ভ্যারিয়েবলে যে কোন ভ্যালুই সেট করতে পারেন। আমরা চাইলে যত ইচ্ছে তত গুলো ভ্যারিয়েবল এভাবে পাস করতে পারিঃ

Route::get('/', function () {
    return view('welcome', [
        'name'=> 'Jack!',
         'age'=> '100!'
        ]);
});

আমরা compact এর মাধ্যমেও ডেটা পাস করতে পারিঃ

Route::get('/', function () {
    $name = 'Jack';
    return view('welcome' , compact('name'));
});

ভিউতে দেখানোর জন্যঃ

<h1>Hello {{ $name }}Your age is {{ $age }}.</h1>

সিঙ্গেল ভ্যারিয়েবলের পরিবর্তে অ্যারে পাস করতে চাইলেঃ

Route::get('/', function () {
    $names = [
    'Bill Gates',
    'Steve Jobs',
    'Larry Page'
    ];

    return view('welcome' , compact('names'));
});

ভিউতে অ্যারে থেকে ডেটা দেখানোর জন্য রেগুলার পিএইচপি ব্যবহার করে এভাবে লিখতে পারিঃ

<ul>
<?php foreach ($names as $name):  ?>
    <li><?php echo $name; ?></li>
<?php endforeach; ?> 
</ul>

ব্লেড ডিরেক্টিভ ব্যবহার করেঃ

    <ul>
        @foreach ($names as $name)
            <li>{{ $name }}</li>
        @endforeach
    </ul>

এমনকি আমরা অ্যারে অফ অ্যারে পাস করতে পারিঃ

Route::get('/', function () {
    $friends = [
        [
            'name' => 'Bill Gates',
            'email' => '[email protected]'
        ],
        [
            'name' => 'Steve Jobs',
            'email' => '[email protected]'
        ]
    ];
    return view('welcome', compact('friends'));
});

ভিউতে এভাবে দেখাতে পারিঃ

    <ul>
        @foreach ($friends as $friend)
            <li>Name: {{ $friend['name'] }}. Email: {{$friend['email']}} </li>
        @endforeach
    </ul>

যা এভাবে আউটপুট দিবেঃ

উপরে হার্ড কোড করে ভিউতে ডেটা পাস করেছি। রিয়েল প্রজেক্টে এই ডেটা গুলো আমরা সাধারণত ডেটাবেজ থেকে আউটপুট দিব।

Leave a Reply