我正在尝试从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,所以可能我的代码结构不正确。
1条答案
按热度按时间rekjcdws1#
在controller.php文件中,您在JavaScript外观上调用了put()方法,但该方法在JavaScript外观上不可用。相反,put()方法在JavaScript示例上可用,您可以通过调用JavaScript::getFacadeRoot()方法访问该示例。
要解决此问题,您可以尝试更新controller.php文件以在JavaScript示例上使用put()方法,如下所示:
通过此更改,您应该能够在JavaScript代码中访问放置在JavaScript示例中的数据,如下所示: