এর আগে আমরা ভিউ এবং রুটস সম্পর্কে জেনেছি। এবার আমরা জানব কিভাবে ভিউতে ডেটা পাস করা যায়। এ জন্য আমরা রাউটস থেকে ভিউতে ডেটা পাস করব এবং ভিউতে ঐ ডেটা দেখাবো। 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>
যা এভাবে আউটপুট দিবেঃ
- Name: Bill Gates. Email: [email protected]
- Name: Steve Jobs. Email: [email protected]
উপরে হার্ড কোড করে ভিউতে ডেটা পাস করেছি। রিয়েল প্রজেক্টে এই ডেটা গুলো আমরা সাধারণত ডেটাবেজ থেকে আউটপুট দিব।