在 Laravel 中将数据从控制器传递到视图
在 Laravel 开发领域,可能会遇到从控制器传输数据的需求到一个视图进行渲染。当您希望在应用程序的前端显示来自数据库的信息时,就会出现这种情况。
给定的代码片段演示了实现此数据传输的一种方法,其中 ProfileController 包含 showstudents 函数。在此函数中,$students 变量使用 Eloquent ORM 填充“student”表中的所有记录。随后,使用 View::make 生成名为“user/regprofile”的视图,并使用 with() 方法传递 $students 变量。
但是,出现错误,指出“未定义变量:学生”当尝试在“regprofile.blade.php”视图中访问此变量时可能会出现。此错误的根源在于将变量从控制器传递到视图的方法不正确。
要纠正此问题,请考虑使用以下方法之一:
<code class="php">return View::make("user/regprofile", compact('students'));</code>
<code class="php">return View::make("user/regprofile")->with(array('students' => $students));</code>
此外,如果您需要同时传递多个变量,您可以使用带有变量名称数组的compact(),如下所示:
<code class="php">$instructors = ""; $institutions = ""; $compactData = array('students', 'instructors', 'institutions'); return View::make("user/regprofile", compact($compactData));</code>
或者,您可以使用 with() 方法和名称-值对数组:
<code class="php">$data = array('students' => $students, 'instructors' => $instructors, 'institutions' => $institutions); return View::make("user/regprofile")->with($data);</code>
以上是如何将数据从 Laravel 控制器传递到视图?的详细内容。更多信息请关注PHP中文网其他相关文章!