Laravel Data Views

Passing the Data Views

The data should be an array with the key/value pairs while passing the information in the following (return view(‘greeting’, [‘name’ => ‘John’]);) manner.

Inside the view, we can access each value by using its corresponding key easily, like <?php echo $key;?>

To pass a complete array of data to the view helper function as an alternative, we use the with() method for adding an individual piece to the views:

Sharing Data with All Views

We need to share a piece of data with all kind of views that are provided by our application. We use the view façade’s share method.

We should place calls to share it within a service providers boot method. We are free to add them to the AppServiceProvider or generate a separate service provider to them:

View Composers:

View composers are callbacks or class methods that are called when a view is provided.

 If we have data that we want to drive from a view each time, which is provided. A view composer can help us to organize logic into a single location.

For example, lets register the view composers within a serviceprovider.

We will use the view façade to access the underlying Illuminate\Contracts\View\Factory contract implementation.

We have to remember that Laravel does not include a default directory for view composers. We are free to organize them; however, we wish.

We could create an App/Http/View/Composers directory:

    Note:

If we want to create a new service provider that contains our view composer registrations, we will need to add the service provider to the provider’s array in the config/app.phpconfiguration file.

Now, we have registered the composer; the ProfileComposer@compose method will be executed each time, the profile view is being provided.

Let’s define the composer class: 

Just before the view is provided, the composer’s compose method is called with the Illuminate\View\View instance. We use with() method to bind data to the view.

  • All the view composers are resolved via the service container. We may type-hint any dependencies that we need within a composer’s constructor.

Attaching a Composer to Multiple Views:

We attach a view composer to multiple views at once by passing an array of views as the first argument to the composer method:

The composer method also accepts the * character as a wildcard, it allow us to attach a composer to all views:

View Creators:

View creators are similar to view composers. They are executed immediately after the view is personalized of waiting, until the views are about to make. To register a view creator, we use the creator method: