cretueusebiu / laravel-javascript
Add JavaScript variables to Laravel.
Installs: 36 868
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 4
Forks: 3
Open Issues: 0
Requires
- php: >=5.5.9
- illuminate/support: ^5.1
Requires (Dev)
- mockery/mockery: 0.9.*
- phpunit/phpunit: ~5.7
This package is auto-updated.
Last update: 2024-12-14 05:50:54 UTC
README
Add JavaScript variables from Laravel.
ScriptVariables::add('user', Auth::user());
const user = window.config.user
Installation
Install the package via Composer:
composer require cretueusebiu/laravel-javascript
Next, you need to register the service provider and facade:
// config/app.php 'providers' => [ ... Eusebiu\JavaScript\JavaScriptServiceProvider::class, ], 'aliases' => [ ... 'ScriptVariables' => Eusebiu\JavaScript\Facades\ScriptVariables::class, ],
Usage
In your controller:
<?php namespace App\Http\Controllers; use Eusebiu\JavaScript\Facades\ScriptVariables; class HomeController extends Controller { public function home() { ScriptVariables::add('key', 'value'); ScriptVariables::add('data.user', User::first()); } }
Next, in your blade view add:
{{ ScriptVariables::render() }}
Then in your JavaScript you can use:
const key = window.config.key const user = window.config.data.user
To customize the namespace use ScriptVariables::render('custom')
.
Global Variables
You can register global variables (like the current user or csrf token) in your AppServiceProvider
:
<?php namespace App\Providers; use Illuminate\Support\ServiceProvider; use Eusebiu\JavaScript\Facades\ScriptVariables; class AppServiceProvider extends ServiceProvider { public function boot() { ScriptVariables::add(function () { return [ 'csrfToken' => csrf_token(), 'currentUser' => auth()->user(), ]; }); } }
Note that the variables must be passed via a closure.