首页 > 解决方案 > Laravel 8 控制器无法识别 JavaScript 实用程序

问题描述

我正在使用 Laravel 8 构建一个站点并尝试将 PHP 变量传递给 JavaScript。起初我在我的 Blade 文件中使用这种结构:

<script>
  let x = {{ $x }};
</script>

但这会被 VSCode 中的 format-on-save 操作破坏,因为大括号被解释为 JavaScript 并由空格分隔。

作为替代方案,我尝试按照此处的说明安装 Laracasts/Utilities 。但是,在执行所有步骤后,控制器无法识别JavaScript

<?php

namespace App\Http\Controllers;
...
use JavaScript;               // <--- no info on mouseover

class XController extends Controller
{
  public function f()
  {
    JavaScript::put([...]);   // <--- Undefined type 'JavaScript'

我是 PHP 和 Laravel 的初学者,所以这超出了我的范围。基于当我在 VSCode 中鼠标悬停时没有弹出任何信息的事实,别名似乎无法正常工作(即使我在aliases中列出了它)。我尝试过运行诸如,和之类的魔法命令,但它们并没有改变任何东西,而且可能不相关。此时我还能尝试什么?config/app.phpuse JavaScriptphp artisan optimize:clearphp artisan config:clearcomposer dump-autoload

标签: phplaravel

解决方案


有很简单的方法可以将 php 变量传递给标记,但是我也没有太多经验,我觉得这是一种解决方法。所以有两个简单的步骤:

  1. 在你的刀片中添加:

    <input id="x" type="hidden" value="{{ $x }}>

  2. 在脚本中获取元素值:

    var x = document.getElementById("x").value


推荐阅读