3 Ways to pass data to view in laravel 8
Tags: laravel, php, showdev, codenewbie
Published: 2021-04-09 21:48:37

# Introduction
Laravel is a MVC(Model View Controller) Framework build with PHP. It has been one of the most starred and most popular backend framework on github. This is simply because Laravel makes it easy for developers to build small, medium or large|complex applications in a very short time with little stress and fewer lines of code.

In Laravel, our view is written using the blade templating engine, which is pretty nice and quiet easy to learn as well.

For this tutorial, we are going to use a fresh laravel Project
###### 1. Create a laravel project with composer or laravel installer

```
laravel new Dataparse
```
###### 2. Create your routes in the web.php file

```
Route::get('/users', 
[ProductController::class, 'index']);
```

```
Route::get('/users', 
[ProductController::class, 'usingwith']);
```

```
Route::get('/users', 
[ProductController::class, 'usingview']);
```
###### 3. Create your controller using the php artisan command

```
php artisan make:controller ProductController
```

This creates the Product controller
```
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class ProductController extends Controller
{
    \\
}

```
###### Create view in the resources/views folder
Here create a file called home.blade.php

##Some of the ways to pass data to the view dynamically are;
#### 1. Using the compact Method:
The compact method creates an array from existing variables given as string arguments to it. Below is an example of how we'd use the compact function.

```
 public function index(){
        $name = "Tony Stack";
        return view('home', compact('name'));
    }
```
In view, use the blade syntax to parse data
```
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,
 initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>User</title>
</head>
<body>
    <h1>User Page</h1>
    <p>{{ $name }}</p>
</body>
</html>
```

#### 2. Using the With Method:
The with method allows you to pass just a single variable to a view.
```
 public function usingwith(){
        $name = "Tony Stack";
        return view('home')->with('name', $name);
    }
```

In the home.blade.php file parse the date

```
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>User</title>
</head>
<body>
    <h1>User Page</h1>
    <p>{{ $name }}</p>
</body>
</html>
```

#### 3. Passing data directly in view method:

```
 public function usingview(){
        $data = [
            "name"=>"John Doe",
            "age" => "23"

        ];
        return view('home', ["data"=>$data]);
    }
```

In the view, parse the data using the @foreach blade syntax

```
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>User</title>
</head>
<body>
    <h1>User Page</h1>
    @foreach ($data as $item )
    {{ $item }}
    @endforeach
</body>
</html>
```

# Hurray you made it. Congratulations!