Laravel视图报错Undefined variable $patients问题排查与解决
问题解决:视图中
$patients变量未定义错误 问题场景
开发医疗系统医生端时,使用doctor.write_medical.blade.php视图,尝试从Patient模型拉取患者姓名填充表单,以patient_id为外键保存病历,但打开页面时触发错误:
Undefined variable $patients
错误定位在视图的@foreach($patients as $patient)代码段。
根因分析
项目路由文件web.php中存在两个路径相同的/write-medical路由,其中后一个直接返回视图的路由覆盖了前一个指向WriteMedicalController的路由,导致控制器中查询生成的$patients变量根本没有传递到视图层。
解决方法
- 删除
web.php中直接返回视图的/write-medical路由条目 - 确保请求由
WriteMedicalController的writeMedical方法处理,该方法需完成患者数据查询并传递给视图,示例代码如下:
// WriteMedicalController.php public function writeMedical() { // 根据实际业务需求调整查询逻辑,比如只查询当前医生负责的患者 $patients = Patient::all(); return view('doctor.write_medical', compact('patients')); }
内容的提问来源于stack exchange,提问作者Aqil Ashraaf
相关产品推荐
相关产品推荐

