Download the PHP package timmcleod/laravel-view-model without Composer
On this page you can find all versions of the php package timmcleod/laravel-view-model. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download timmcleod/laravel-view-model
More information about timmcleod/laravel-view-model
Files in timmcleod/laravel-view-model
Package laravel-view-model
Short Description View Models for Laravel 5.x
License MIT
Homepage https://github.com/timmcleod/laravel-view-model
Informations about the package laravel-view-model
View Models for Laravel
Clean up messy views using View Models
This package can be used to help you encapsulate, validate, and manipulate the data that is required by each of the views in your Laravel 5.x applications.
Purpose and Overview
As the views in our applications grow more complex, they tend to require more data that needs to be presented in varying ways. As our view dependencies increase and the view files become more complex, it can be increasingly difficult to keep track of the data that is required by the view.
View Models help by:
- Validating the data that is injected into the view to verify that the data is exactly what the view expects.
- Facilitating the bundling of data with the methods required to manipulate the data in the context of the view.
- Reducing the chance that the "global" variables in your views will be inadvertently overwritten within your views.
- Providing a way to see what data is required by the view at-a-glance.
Installation
Require this package with composer:
Then, register the following service providers in your app config (project/config/app.php
) by adding them to the providers
array:
Getting Started
After you have registered the ViewModelServiceProvider
, a new Artisan command will be available to generate your view models. To create a new view model, use the make:view-model
Artisan command:
This command will place a new EditProfileViewModel
class within your app/Http/ViewModels
directory. If the directory doesn't exist, it will be created for you.
If you prefer to subgroup your view models, you can generate them this way:
This command will place a new EditProfileViewModel
class within your app/Http/ViewModels/User
directory.
Basic Usage
To use view models, just create a new instance of a view model and pass the instance into the view.
When the new view model is instantiated, the data is validated using the rules defined in your view model class. You can use any of the available validation rules defined in Laravel documentation.
Three additional rules are also available: instance_of
, collection_of
, and paginator_of
.
If any of the data coming from the controller fails validation, an exception is thrown.
Within your views, you can access the data in your view model like this: $vm->timezones
.
You can also add your own methods to your view model to keep your view-specific logic bundled nicely with the data to keep your views clean.
Or maybe you want to create a list of checkboxes for cities in 2 separate columns in this particular view. You could do something like this:
As you can see, View Models allow us to bundle the view data with the methods required to manipulate the data in the context of the view.
License
View Models for Laravel is open-sourced software licensed under the MIT license.
Laravel is a trademark of Taylor Otwell.
All versions of laravel-view-model with dependencies
illuminate/validation Version ~5.2
timmcleod/laravel-instance-validator Version ~1.0