public function person() { $student=\think\facade\Session::has('SNO'); $restult = \app\model\Student::find($student); return \view('person',['student' =>$restult]); }
时间: 2024-02-07 17:03:41 浏览: 151
这段代码看起来是一个基于 ThinkPHP 框架的控制器方法,它的作用是显示一个名为 "person" 的视图,并将当前登录学生的信息传递到该视图中。
然而,代码中存在一个问题,就是在第二行中,使用 `Session::has()` 方法判断当前用户是否已登录,返回的类型是布尔值,而不是学生的学号。因此,在第三行中,尝试使用 `$student` 变量去查询学生信息时,可能会查询失败,返回空值,因此会导致 "Trying to access array offset on value of type null" 错误。
你需要修改第二行代码,将 `Session::has()` 替换成 `Session::get()`,并且需要指定一个默认值,以免当前用户未登录时出现错误。例如:
```
$student = \think\facade\Session::get('SNO', null);
if ($student !== null) {
$result = \app\model\Student::find($student);
return \view('person', ['student' => $result]);
} else {
// 处理未登录的情况,例如跳转到登录页面
}
```
这样修改后,如果当前用户已登录,则会显示该用户的信息,否则会进行其他处理。
阅读全文