РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
44 of 1392 menu

Директива @js

Директива @js применяется в Blade-шаблонах для передачи данных из PHP в JavaScript. Она преобразует переданную переменную в JSON-строку, экранирует специальные символы и возвращает готовый для вставки в JavaScript-код результат. Директива принимает один параметр - переменную, которую необходимо преобразовать. Если переменная является массивом или объектом, она будет рекурсивно преобразована в JSON.

Синтаксис

@js($variable)

Пример

Давайте преобразуем простую строку для использования в JavaScript:

<script> const message = @js($message); console.log(message); </script>
<?php namespace AppHttpControllers; use IlluminateSupportFacadesView; class Controller { public function index() { $message = 'Hello, world!'; return view('index', ['message' => $message]); } } ?>

Пример

Давайте преобразуем массив данных для передачи в JavaScript:

<script> const users = @js($users); users.forEach(user => { console.log(user.name); }); </script>
<?php namespace AppHttpControllers; use IlluminateSupportFacadesView; class Controller { public function index() { $users = [ ['name' => 'John', 'age' => 25], ['name' => 'Jane', 'age' => 30], ['name' => 'Bob', 'age' => 22] ]; return view('index', ['users' => $users]); } } ?>

Пример

Давайте передадим данные модели Eloquent в JavaScript:

<script> const article = @js($article); document.getElementById('title').textContent = article.title; document.getElementById('content').textContent = article.content; </script>
<?php namespace AppHttpControllers; use AppModelsArticle; use IlluminateSupportFacadesView; class Controller { public function index() { $article = Article::where('id', 1)->first(); return view('index', ['article' => $article]); } } ?>

Пример

Давайте передадим коллекцию моделей в JavaScript:

<script> const articles = @js($articles); articles.forEach(article => { console.log(article.id + ': ' + article.title); }); </script>
<?php namespace AppHttpControllers; use AppModelsArticle; use IlluminateSupportFacadesView; class Controller { public function index() { $articles = Article::where('status', 'published')->get(); return view('index', ['articles' => $articles]); } } ?>

Смотрите также

  • директива @{{ }},
    которая выводит данные в HTML с экранированием
  • директива @raw,
    которая выводит данные без экранирования
  • директива @json,
    которая также преобразует данные в JSON, но без экранирования для HTML-атрибутов
  • директива @dump,
    которая выводит дамп переменной для отладки
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить