Laravel使用Google Analytics(分析)-使用未定义的常量

时间:2018-09-05 15:16:00

标签: php laravel laravel-blade

  

使用未定义的常量analyticsData-假定为'analyticsData'(这将在以后的PHP版本中引发错误)(查看:/home/vagrant/apps/rt2018/resources/views/records.blade.php)(查看:/home/vagrant/apps/rt2018/resources/views/records.blade.php)“

我的records.blade.php文件

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Hello Analytics - A quickstart guide for JavaScript</title>
</head>
<body>

<h1>Hello Analytics</h1>

{{analyticsData}}

</body>
</html>

我的控制器

use Spatie\Analytics\Period;
use Analytics;

public function showMonthlyReport($site_id, $report_id){

$reports = Report::where('report_id', $report_id)->firstOrFail();

$analyticsData = Analytics::fetchMostVisitedPages(Period::days(7));

return view('records', compact('site_id', 'report_id', 'reports', 'analyticsData'));

}

这是我的records.blade.php刀片服务器文件路径

<a href="{{route('Reports',['site_id'=>$report->site_id, 'report_id'=>$report->report_id])}}">view</a>

我试图在控制器中放入任何变量。例如$wow = 1; 在我的控制器的返回视图上添加“哇” 然后放到我的刀片上{{wow}}会给我同样的错误。

这是以前工作的,但我不知道会发生什么。 放在刀片上的任何{{object}}都会给我这个错误。 Use of undefined constant (any declared object)。当我尝试删除/注释analyticsData以及我的刀片文件中的注释时,它正在运行。在我现在使用Laravel 5.4之前,它已经在Laravel 5.2和PhP 7.2上工作。我知道不是因为版本。您知道如何解决此问题吗?预先谢谢你!

1 个答案:

答案 0 :(得分:1)

以在analyticsData中访问.blade.php的情况为例:

{{ analyticsData }}

在PHP中尝试访问变量时省略$会尝试访问具有相同名称的常量。在这种情况下(大多数情况下),这是一个错字,并且从未定义过常量。该错误消息可能有些含糊,但是在您了解其要执行的操作时才有意义。

要解决此问题,只需正确引用变量,并附带$

{{ $analyticsData }}