Laravel实现select下拉框时报Undefined variable: department错误如何解决
错误原因
你收到Undefined variable: department报错的核心原因有两个:
- 你视图中的
@foreach循环被Blade注释符{{-- --}}包裹了,注释内的逻辑不会被框架执行,所以根本没有生成循环变量$department,模板直接读取<option>标签内的$department时就会抛出未定义错误 - 报错的视图路径是
users/form.blade.php,而你的控制器直接返回的是users.edit视图,如果是在edit.blade.php中通过@include引入了form.blade.php,需要注意把$departments变量传递到子视图中,否则子视图也会找不到变量
解决方法
- 首先移除
@foreach和@endforeach前后的Blade注释符,修正后的下拉框代码如下:
<select name="department_id" id="department_id" class="form-select"> @foreach($departments as $department) <option value="{{$department->id}}">{{$department->name}}</option> @endforeach </select>
- 如果
form.blade.php是嵌套在edit.blade.php中使用的,需要在引入子视图时传递变量,示例如下:
{{-- edit.blade.php 中引入form的代码 --}} @include('users.form', ['departments' => $departments, 'usuario' => $usuario, 'roles' => $roles])
内容的提问来源于stack exchange,提问作者Cristina Cruz
相关产品推荐
相关产品推荐

