未定义变量:Laravel 中的电池

Undefined variable: Battery in Laravel

我在 Laravel 中创建了一个饼图,它工作正常,但是当我在项目中实现它时出现错误。

Undefined variable: Battery (View: D:\xampp\htdocs\laravel\webpro3\resources\views\showrecord.blade.php)

<script type="text/javascript">
    var analytics = <?php echo $Battery; ?>
    google.charts.load('current', {'packages':['corechart']});
    google.charts.setOnLoadCallback(drawChart);

路线

Route::resource('showrecord','ShowrecordController');

控制器

public function piechart()
{
    $data = DB::table('importpdfs')
        ->select(
            DB::raw('Battery as Battery'),
            DB::raw('count(*) as number'))
        ->groupBy('Battery')
        ->where('ST', '>=', 7)
        ->orWhere('SAS', '>=', 120)
        ->orWhere('NPR', '>=', 90)
        ->get();

    $array[] = ['Battery', 'Number'];

    foreach ($data as $key => $value) {
        $array[++$key] = [$value->Battery, $value->number];
    }

    return view('showrecord')->with('Battery', json_encode($array));
}

我该如何解决这个问题?

这样试试

在 piechart() 方法中,将 return 行更改为 return 仅包含数据:

public function piechart()
{
    // ...
    return json_encode($array);
}

然后在 index() 方法中将 piechart() 中的 returned 数据分配给一个变量,然后 return 带有视图的变量在 compact() 中添加 'Battery' :

public function index()
{
    // ...
    $Battery = $this->piechart();
    return view('showrecord', compact('pdfdata', 'importpdfs', 'Battery'));
}