Download the PHP package jshannon63/laravel-baton without Composer
On this page you can find all versions of the php package jshannon63/laravel-baton. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download jshannon63/laravel-baton
More information about jshannon63/laravel-baton
Files in jshannon63/laravel-baton
Package laravel-baton
Short Description Share named routes and other collection data to Javascript from your Laravel Blade views
License MIT
Informations about the package laravel-baton
Baton - Share Laravel named routes and other collection data with javascript
Baton registers a global view composer which will enable passing of the Baton collection to all views. The Baton collection contains all named routes (optional) as well as any additional values you wish to add to the collection prior to rendering the view.
If you are looking for a more flexible package which is specifically designed to pass only named routes to the client I would recommend tightenco/ziggy. It gives many more options for that function. Baton is a good choce when you would like the flexibility of working with collections and quickly/easily passing that data to javascript.
Installation
Laravel 5.5+ will automatically take care of the service provider registration.
Usage
Configuration:
Baton will by default pass named routes to the rendered view. If you wish to disable this action, add the following line to your .env file.
By default, Baton contains a collection of named routes called "routes":
Adding additional data to Baton before passing on to the view
Baton is an extension of the Collection class. You may add, manuipulate or remove any collection elements using the methods of Illuminate\Support\Collection.
Example to add a Blog article to Baton:
First, create a real time Facade for Baton as follows
Then access the put method of Baton using the Facade.
Rendering Baton data in a view
The {!!baton!!} declaration will be replaced with a javascript compliant variable declaration. Notice that the syntax used to embed our $baton variable in the blade view will prevent escaping by the htmlspecialchars() function. You may place {!!$baton!!} anywhere in your view. You may choose to make it available as window.baton or even within a Vue component or other javascript implementation.
This is before rendering...
This is after rendering...
In the above example, the blog route uri is available on the client side as window.baton.routes.blogs
Contributing
If you would like to contribute refer to CONTRIBUTING.md