다음은 Laravel튜토리얼 칼럼에 실린 laravel custom template Instructions-tojs에 대한 소개입니다. 필요한 친구들에게 도움이 되었으면 좋겠습니다!
3. FacadeBlade를 사용하면 명령을 사용자 정의할 수 있습니다. 지시문 방법을 사용하여 명령을 등록할 수 있습니다. 블레이드 컴파일러가 이 명령을 만나면 제공된 콜백 함수를 인수와 함께 호출합니다. 블레이드 템플릿은 지시문 메서드를 통해 템플릿 사양을 사용자 정의할 수 있습니다.
tojs 지시어는 주로 PHP에서 일부 데이터를 사용자 정의하고 이를 js 호출을 용이하게 하기 위해 js 개체로 변환하는 데 사용됩니다. 2. ToJs 메서드는 주로 배열 작업
<?php namespace App\Providers; use App\Helpers\ToJs\ToJs; use Illuminate\Support\Facades\Blade; use Illuminate\Support\ServiceProvider; class ToJsServiceProvider extends ServiceProvider { /** * Bootstrap the application services. * * @return void */ public function boot() { // } /** * Register the application services. * * @return void */ public function register() { $this->app->singleton('tojs', function () { return new ToJs(); }); /* * The block of code inside this directive indicates * the chosen javascript variables. */ Blade::directive('tojs', function () { return '<script> window.Laravel = ' . json_encode(app('tojs')->get()) . '</script>'; }); } }
<?php namespace App\Helpers\ToJs; use Illuminate\Support\Arr; class ToJs { protected $data = []; public function put(array $data) { foreach ($data as $key => $value) { $this->data[$key] = value($value); } return $this; } public function get($key = null, $default = null) { if (!$key) return $this->data; return Arr::get($this->data, $key, $default); } public function forget($keys) { Arr::forget($this->data, $keys); return $this; } }
AppProvidersToJsServiceProvider::class
'ToJs' => AppHelpersToJsFacadesToJsFacade: :class,
5. 호출의 편의를 위해 도우미 메서드를 작성할 수 있습니다.AppProvidersToJsServiceProvider::class
aliases 添加'ToJs' => AppHelpersToJsFacadesToJsFacade::class,
namespace App\Helpers\ToJs\Facades; use Illuminate\Support\Facades\Facade; class ToJsFacade extends Facade { /** * Get the registered name of the component. * * @return string */ protected static function getFacadeAccessor() { return 'tojs'; } }
在PHP代码需要的地方调用 to_js(['username'=>'test']);
blade模板直接通过 @tojs
就可以在页面渲染出<script> window.Laravel = {"username":"test"}</script>
if (!function_exists('to_js')) { /** * Access the javascript helper. */ function to_js($key = null, $default = null) { if (is_null($key)) { return app('tojs'); } if (is_array($key)) { return app('tojs')->put($key); } return app('tojs')->get($key, $default); } }Call
to_js(['username'=>'test ']); code>🎜🎜blade 템플릿은 <code>@tojs
🎜<script> window.Laravel = {"username":"test"}를 통해 페이지에 직접 렌더링될 수 있습니다. 🎜
위 내용은 laravel 맞춤 템플릿 directive-tojs 정보의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!