laravel PHP -应用程序设计语言页面未找到JavaScript::

qyyhg6bp  于 2022-12-14  发布在  PHP
关注(0)|答案(1)|浏览(91)

我正在尝试从Javascript访问PHP的数据来格式化我的页面。我正在使用Laravel框架。
我在数据库中存储了一些信息,我从PHP中获取这些信息,并根据登录的用户使用这些信息来设置页面的不同格式。DB中的信息不仅仅用于此目的。
为了格式化我的页面,我使用了一些JavaScript,所以我需要在JavaScript中访问这些数据。
我遵循这个教程:https://github.com/laracasts/PHP-Vars-To-Js-Transformer
但是我仍然无法访问我的数据,它告诉我在JavaScript中找不到方法put
下面是我的代码片段:
文件. blade.php:

@extends('layouts.app')
@section('content')
@include('footer')

<div class="container">
    Code for my page here. 
</div>

<script type="text/javascript">
    console.log(age);
</script>

@endsection

javascript.php:

<?php

return [
'bind_js_vars_to_this_view' => 'footer',
'js_namespace' => 'window'
];

controller.php:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\View\View;
use JavaScript;

class BusLine extends Model
{

public function index()
{

    JavaScript::put([
        'foo' => 'bar',
        'age' => 29
    ]);

    return View::make('hello');
}

protected $table='bus_line';

protected $fillable = [
    'ID', 'card_uid', 'bus_direction'
];
}

我的footer.blade.php是空的,我在app.php中添加了Laracasts\Utilities\JavaScript\JavaScriptServiceProvider::class'JavaScript' => Laracasts\Utilities\JavaScript\JavaScriptFacade::class
我尝试了一些事情,比如在另一个文件中运行PHP,但没有任何变化。总是出现同样的消息。也许我错过了安装步骤。
我是一个完全新的Laravel / PHP,所以可能我的代码结构不正确。

rekjcdws

rekjcdws1#

在controller.php文件中,您在JavaScript外观上调用了put()方法,但该方法在JavaScript外观上不可用。相反,put()方法在JavaScript示例上可用,您可以通过调用JavaScript::getFacadeRoot()方法访问该示例。
要解决此问题,您可以尝试更新controller.php文件以在JavaScript示例上使用put()方法,如下所示:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\View\View;
use JavaScript;

class BusLine extends Model
{
    public function index()
    {
        $js = JavaScript::getFacadeRoot();
        $js->put([
            'foo' => 'bar',
            'age' => 29
        ]);

        return View::make('hello');
    }

    protected $table='bus_line';

    protected $fillable = [
        'ID', 'card_uid', 'bus_direction'
    ];
}

通过此更改,您应该能够在JavaScript代码中访问放置在JavaScript示例中的数据,如下所示:

<script type="text/javascript">
    console.log(age); // should print 29
</script>

相关问题