我收到Undefined Variable错误。这是我的控制器:
控制器:
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)
答案 0 :(得分:1)
你应该使用紧凑型
$englishgrades = StudentHistory::where('subject', 'English')
->get();
$englishgrades = []; // remove this so it will not overwrite the above declaration ..
return view('home', compact('englishgrades'));
它将返回一个空数组,因为你要覆盖原始值..
答案 1 :(得分:1)
删除
$englishgrades = [];
和
return view('home', ['englishgrades' => $englishgrades]);
答案 2 :(得分:1)
return view('home', $englishgrades);
在上面的代码中,第二个Argument需要是一个数组键作为变量名,值是变量或值。
像
return view('home',['englishgrades'=>$englishgrades]);
您可以手动编写或使用紧凑函数生成键值对
的数组() return view('home',compact('englishgrades'));
所以现在您在视图中访问$englishgrades
或者您可以使用
$data = compact('englishgrades'); or
$data = ['englishgrades'=>$englishgrades];
return view('home',$data);
这里主要是在视图中使用键作为变量 例如:
$data = ['grades'=>$englishgrades];
return view('home',$data);
因此,在View中,您必须使用 $ grades