【问题标题】:Undefined variable: Battery in Laravel未定义变量:Laravel 中的电池
【发布时间】:2019-10-30 03:44:59
【问题描述】:

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

未定义变量:电池(查看: 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));
}

我该如何解决这个问题?

【问题讨论】:

  • 如何让这个资源路由匹配控制器中的那个方法?是否可能有另一个路由或控制器的方法返回没有变量的视图?
  • 我是新手,你能指导我如何解决它
  • 试试$Battery = json_encode($array); return view('showrecord', compact('Battery'))
  • 尝试在您发布的资源路由之前添加此路由:Route::get('foo/bar', 'ShowrecordController@piechart');,然后在您的浏览器中转到your-domain/foo/bar
  • 不工作记住错误在这里ibb.co/G3KzRQ0

标签: laravel eloquent laravel-5.8


【解决方案1】:

这样试试。

在 piechart() 方法中更改返回行,只返回数据:

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

并且在 index() 方法中,将 piechart() 返回的数据赋值给一个变量,然后在 compact() 中添加 'Battery' 的视图返回该变量:

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

【讨论】:

  • 是的,当然。我不知道它是否会起作用,这就是为什么我没有解释它。资源类型的路由只对应控制器中的一些方法。这就是为什么我觉得奇怪的是你用那条路线来到piechart() 方法。根据 cmets 中的问题,我得出的结论是 index() 方法正在返回错误所在的视图。然后我建议在piechart() 方法中只返回数据,将它们分配给index() 方法中的变量,然后从那里返回带有变量的视图。
  • 查看docs 以更广泛地了解资源类型控制器的工作原理
猜你喜欢
  • 2016-10-24
  • 1970-01-01
  • 2019-04-29
  • 1970-01-01
  • 2015-05-15
  • 2018-12-12
  • 1970-01-01
  • 2019-03-01
  • 2023-03-05
相关资源
最近更新 更多