cretueusebiu / laravel-javascript
将 JavaScript 变量添加到 Laravel 中。
0.2.1
2017-03-09 13:55 UTC
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-09-14 05:24:31 UTC
README
从 Laravel 添加 JavaScript 变量。
ScriptVariables::add('user', Auth::user());
const user = window.config.user
安装
使用 Composer 安装包
composer require cretueusebiu/laravel-javascript
接下来,您需要注册服务提供者和外观
// config/app.php 'providers' => [ ... Eusebiu\JavaScript\JavaScriptServiceProvider::class, ], 'aliases' => [ ... 'ScriptVariables' => Eusebiu\JavaScript\Facades\ScriptVariables::class, ],
用法
在您的控制器中
<?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()); } }
接下来,在您的 blade 视图中添加
{{ ScriptVariables::render() }}
然后,在您的 JavaScript 中可以使用
const key = window.config.key const user = window.config.data.user
要自定义命名空间,请使用 ScriptVariables::render('custom')
。
全局变量
您可以在 AppServiceProvider
中注册全局变量(如当前用户或 csrf 令牌)
<?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(), ]; }); } }
注意,变量必须通过闭包传递。