【问题标题】:Undefined Variable even if I passed it already即使我已经通过了未定义的变量
【发布时间】:2017-10-19 00:54:58
【问题描述】:

我收到未定义变量错误。这是我的控制器:

控制器:

public function index()
{

    /**$englishgrades = StudentHistory::select('date', 'student_id', 'grade')
    ->where('subject', 'English')
    ->groupBy('student_id')
    ->orderBy('date','desc')
    ->first()
    ->get();        
    */  

    $englishgrades = StudentHistory::where('subject', 'English')
    ->get();        

    $englishgrades = [];

    return view('home', $englishgrades);
}

我正在使用它来调用我的刀片

{{ $englishgrades }}

未定义变量:englishgrades(查看:/home/vagrant/Code/projects/DYK/resources/views/home.blade.php)

【问题讨论】:

  • 你正在用 $englishgrades = []; 覆盖
  • 我删除了那个,但它仍然在说未定义的变量
  • 删除你的$englishgrades = [];return view('home', ['englishgrades' => $englishgrades]);

标签: php laravel controller


【解决方案1】:

你应该使用紧凑型

$englishgrades = StudentHistory::where('subject', 'English')
->get();
$englishgrades = []; // remove this so it will not overwrite the above declaration ..
return view('home', compact('englishgrades'));

它将返回一个空数组,因为您正在覆盖原始值..

【讨论】:

  • 这行得通,谢谢!你能提供参考我在哪里可以读到'compact'
  • compact 与使用字符串的键和 eval('$'.'stringinput'); 的值声明数组相同。并将其放在一个数组中,但在这里:quora.com/What-does-compact-do-in-Laravel .. 我希望它有所帮助..
【解决方案2】:

删除你的

$englishgrades = []; 

return view('home', ['englishgrades' => $englishgrades]);

【讨论】:

  • 我正在删除我的答案:)
  • @sumit 很抱歉。谢谢兄弟。
  • @Demonyowh 的简洁答案怎么样,哪个合适?
  • @RodneyZanoria 两个兄弟都可以。相同的目的是将 Object JSON 返回到 Blade 视图。
【解决方案3】:
return view('home', $englishgrades);

在上面的代码中,第二个参数需要是一个数组键作为变量名,值作为变量或值。

喜欢

   return view('home',['englishgrades'=>$englishgrades]);

您可以手写或使用紧凑函数来生成键值对的array()

  return view('home',compact('englishgrades'));

所以现在您在视图中访问$englishgrades

或者你可以像这样使用

   $data = compact('englishgrades'); or 
   $data = ['englishgrades'=>$englishgrades];
   return view('home',$data);

这里主要是在视图中您使用 key 作为 变量 例如:

 $data = ['grades'=>$englishgrades];
   return view('home',$data);

所以在 View 中你必须使用 $grades

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-07
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 2015-01-21
    • 2023-01-11
    • 2020-08-25
    • 2023-04-11
    相关资源
    最近更新 更多